美文网首页
利用a标签的锚点实现目录结构

利用a标签的锚点实现目录结构

作者: 似朝朝我心 | 来源:发表于2022-04-23 19:45 被阅读0次

平时我们看到一些官方文档都会发现一些类似的结构,左边是一个固定侧边栏目录,右边是内容展示区,点击目录的每一项,右边都会跳转到对应的位置,其实这就是锚点实现的。

图片以elementUI为例子,就是这样一种目录结构。

学过vue的我,一开始以为是用路由来实现的,虽然也可以实现,但着实有些鸡肋。

其实原理十分简单,就是用到一个a标签的锚点来实现的。

<a href="#title1">第一章</a>
<a name="title1">
    <div class="item">内容1</div>
</a>

下面是我个人写的一个小demo,点击不同的章节跳转到不同的内容区域。


<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        * {
            margin: 0;
            padding: 0;
        }

        .container {
            display: flex;
        }

        .left {
            flex: 1;
            background-color: rgb(10, 219, 219);
            display: flex;
            flex-direction: column;
            position: fixed;
            width: 200px;
            height: 100%;

        }

        .right {
            flex: 5;
            margin-left: 200px;
            background-color: aquamarine;
        }
        .right a {
            display: block;
        }
        .item {
            height: 500px;
        }
    </style>
</head>

<body>
    <div class="container">
        <div class="left">
            <a href="#title1">第一章</a>
            <a href="#title2">第二章</a>
            <a href="#title3">第三章</a>
            <a href="#title4">第四章</a>
            <a href="#title5">第五章</a>
            <a href="#title6">第六章</a>
            <a href="#title7">第七章</a>
            <a href="#title8">第八章</a>
            <a href="#title9">第九章</a>
        </div>
        <div class="right">
            <a name="title1">
                <div class="item">内容1</div>
            </a>
            
            <a name="title2">
                <div class="item">内容2</div>
            </a>
            <a name="title3">
                <div class="item">内容3</div>
            </a>
            <a name="title4">
                <div class="item">内容4</div>
            </a>

            <a name="title5">
                <div class="item">内容5</div>
            </a>
            <a name="title6">
                <div class="item">内容6</div>
            </a>
            <a name="title7">
                <div class="item">内容7</div>
            </a>
            <a name="title8">
                <div class="item">内容8</div>
            </a>
            <a name="title9">
                <div class="item">内容9</div>
            </a>
        </div>
    </div>
</body>
</html>

模板二:推荐

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<style>
    *{
        margin: 0;
        padding: 0;
    }
    .container{
        display: flex;
    }
    .siderBar{
        position: fixed;
        top: 0;
        left: 0;
        background-color: darkcyan;
        min-width: 200px;
    }
    .siderBar a{
        display: block;
    }
    .main {
        margin-left: 200px;
        flex: 1;
    }
    .main div{
        height: 500px;
    }
    #a1:nth-of-type(1){
        background: #000;
    }
    #a2:nth-of-type(2){
        background: rgb(196, 71, 71);
    }
    #a3:nth-of-type(3){
        background: rgb(18, 184, 59);
    }
    #a4:nth-of-type(4){
        background: rgb(212, 200, 21);
    }
</style>
<body>
    <div class="container">
        <div class="siderBar">
            <a href="#a1">第一章</a>
            <a href="#a2">第二章</a>
            <a href="#a3">第三章</a>
            <a href="#a4">第四章</a>
        </div>
        <div class="main">
            <div id="a1">内容1</div>
            <div id="a2">内容2</div>
            <div id="a3">内容3</div>
            <div id="a4">内容4</div>
        </div>
    </div>
</body>
</html>

附带小知识:

a的target="_blank"会新开一个页面。

<a href="http://" target="_blank" rel="noopener noreferrer"></a>

获取网页的url地址

console.log(location.href)

哈希地址就是#号后面的一段,获取哈希地址方式:

console.log(location.hash)

相关文章

  • 利用a标签的锚点实现目录结构

    平时我们看到一些官方文档都会发现一些类似的结构,左边是一个固定侧边栏目录,右边是内容展示区,点击目录的每一项,右边...

  • 无标题文章

    大家好 1.第一种,利用a标签的锚点实现tab切换 2.利用radio按钮和:checked选择器

  • html入门

    HTML文件结构 字体标签 font 段落标签 p 换行标签 标题标签 img标签 a超链接标签 锚点标签 列表 ...

  • 【a标签的锚点技术】

    锚点技术 锚点:指的是一个网页上的某个“定位位置”。 锚点的实现:需要使用至少2次a标签来配合完成。 其基本形式如...

  • Markdown 语法介绍

    Markdown 语法介绍 目录 [TOC]简书不支持,可用锚点实现 标题 锚点 点击跳转 引用 列表 列表项目标...

  • html css js 基础五(锚点)

    利用锚点可以实现点击某个位置,显示它对应的位置的文字或者图片,实现类似于定位的效果,锚点用的是id属性; 这种效果...

  • a标签的href属性中的"“与”javascript

    众所周知,a标签的最重要功能是实现超链接和锚点。而且,大多数人认为a标签最重要的作用是实现超链接。 其中,a标签内...

  • html

    a标签默认动作:1.打开页面 2.跳转锚点 html只管内容,css管样式 标签: a:anchor 标记锚点,超...

  • href之锚点跳转

    求稳 href之锚点跳转 锚点用 标签,在href属性中写入DIV的id。 标签包裹,href指向要跳转的位置 跳...

  • html链接标签

    仅供学习,转载请注明出处 html链接标签 标签,也叫anchor(锚点)元素,既可以用来链接到外部地址实现页面跳...

网友评论

      本文标题:利用a标签的锚点实现目录结构

      本文链接:https://www.haomeiwen.com/subject/fraaertx.html