CSS目标伪类选择器怎么用?如何高亮当前锚点

来源:个人站长作者:葵司头衔:网络博主
导读:本期聚焦于小伙伴创作的《CSS目标伪类选择器怎么用?如何高亮当前锚点》,敬请观看详情,探索知识的价值。以下视频、文章将为您系统阐述其核心内容与价值。如果您觉得《CSS目标伪类选择器怎么用?如何高亮当前锚点》有用,将其分享出去将是对创作者最好的鼓励。

CSS目标伪类选择器是CSS3中新增的一类伪类选择器,通过:target伪类可以匹配页面中当前被锚点链接指向的元素,我们可以借助这个特性在不写JavaScript代码的情况下,实现当前锚点的高亮效果。

CSS目标伪类选择器怎么用?如何高亮当前锚点

什么是CSS目标伪类选择器

CSS目标伪类选择器的语法为选择器:target,这里的:target会匹配URL片段标识符(也就是URL中#后面的部分)对应的元素。当用户点击一个指向页面内某个元素id的锚点链接时,URL会更新为包含对应id的片段,此时该id对应的元素就会被:target匹配到。

基本语法示例

/* 匹配当前被激活的目标元素 */
:target {
    background-color: #fff3cd;
    border-left: 4px solid #ffc107;
    padding: 12px 16px;
}

实现高亮当前锚点的完整步骤

要实现锚点点击后高亮当前锚点的效果,只需要三个步骤即可完成:

  • 在页面中定义锚点目标元素,给元素设置唯一的id属性
  • 添加指向这些id的锚点链接,链接的href属性值为#加上目标元素的id
  • 编写:target伪类的CSS样式,定义高亮的视觉效果

完整示例代码

下面是一个完整的长文档页面锚点高亮示例,点击左侧导航的锚点链接,对应的章节标题会自动高亮:

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <title>锚点高亮示例</title>
    <style>
        /* 基础样式 */
        * {
            margin: 0;
            padding: 0;
            box-sizing: border-box;
        }
        body {
            font-family: "Microsoft YaHei", sans-serif;
            line-height: 1.6;
            padding: 20px;
        }
        /* 导航样式 */
        .nav {
            position: fixed;
            left: 20px;
            top: 20px;
            width: 160px;
            background-color: #f8f9fa;
            padding: 16px;
            border-radius: 8px;
        }
        .nav a {
            display: block;
            padding: 8px 12px;
            color: #333;
            text-decoration: none;
            margin-bottom: 8px;
            border-radius: 4px;
        }
        .nav a:hover {
            background-color: #e9ecef;
        }
        /* 内容区域样式 */
        .content {
            margin-left: 200px;
        }
        .section {
            margin-bottom: 40px;
            padding: 20px;
            border-radius: 8px;
            transition: all 0.3s ease;
        }
        /* 目标伪类高亮样式 */
        .section:target {
            background-color: #e8f5e9;
            border-left: 5px solid #4caf50;
            box-shadow: 0 2px 8px rgba(0,0,0,0.1);
        }
        h2 {
            margin-bottom: 12px;
            color: #2c3e50;
        }
        p {
            color: #555;
        }
    </style>
</head>
<body>
    <div class="nav">
        <a href="#section1">第一章 概述</a>
        <a href="#section2">第二章 特性</a>
        <a href="#section3">第三章 应用</a>
        <a href="#section4">第四章 总结</a>
    </div>
    <div class="content">
        <div class="section" id="section1">
            <h2>第一章 概述</h2>
            <p>本章主要介绍CSS目标伪类选择器的基本概念和使用场景,帮助开发者快速了解这个特性的作用。</p>
            <p>CSS伪类选择器是CSS中非常重要的组成部分,目标伪类就是其中实用性很强的一类。</p>
        </div>
        <div class="section" id="section2">
            <h2>第二章 特性</h2>
            <p>本章详细介绍CSS目标伪类选择器的核心特性,包括匹配规则、样式优先级等相关知识。</p>
            <p>目标伪类的优先级和类选择器相同,比元素选择器优先级高。</p>
        </div>
        <div class="section" id="section3">
            <h2>第三章 应用</h2>
            <p>本章讲解目标伪类选择器的常见应用场景,除了锚点高亮之外还有其他实用用法。</p>
            <p>还可以用来实现无JavaScript的选项卡切换效果,通过不同的锚点控制显示不同的内容区域。</p>
        </div>
        <div class="section" id="section4">
            <h2>第四章 总结</h2>
            <p>本章对前面的内容进行总结,梳理使用CSS目标伪类选择器的注意事项和最佳实践。</p>
            <p>合理使用这个特性可以减少JavaScript代码量,提升页面的性能和可维护性。</p>
        </div>
    </div>
</body>
</html>

注意事项

  • 目标元素的id必须和锚点链接的href中的片段完全匹配,包括大小写,否则无法触发高亮效果
  • 如果页面初始URL就包含片段标识符,页面加载时对应的目标元素会直接应用:target样式
  • :target伪类的样式优先级和类选择器相同,如果需要覆盖默认样式,需要使用更高优先级的规则
  • 当URL的片段标识符没有匹配到任何元素时,:target伪类不会匹配任何元素,不会产生样式效果

其他应用场景

除了高亮当前锚点之外,CSS目标伪类选择器还可以用于实现无JavaScript的选项卡、模态框显示等效果。比如下面的简单选项卡示例:

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <title>无JS选项卡示例</title>
    <style>
        .tab-nav a {
            display: inline-block;
            padding: 8px 16px;
            border: 1px solid #ddd;
            text-decoration: none;
            color: #333;
            margin-right: 4px;
        }
        .tab-content {
            display: none;
            padding: 20px;
            border: 1px solid #ddd;
            border-top: none;
        }
        .tab-content:target {
            display: block;
        }
        /* 默认显示第一个选项卡 */
        #tab1 {
            display: block;
        }
    </style>
</head>
<body>
    <div class="tab-nav">
        <a href="#tab1">选项卡1</a>
        <a href="#tab2">选项卡2</a>
        <a href="#tab3">选项卡3</a>
    </div>
    <div class="tab-content" id="tab1">
        <p>这是第一个选项卡的内容</p>
    </div>
    <div class="tab-content" id="tab2">
        <p>这是第二个选项卡的内容</p>
    </div>
    <div class="tab-content" id="tab3">
        <p>这是第三个选项卡的内容</p>
    </div>
</body>
</html>

CSS目标伪类选择器高亮当前锚点伪类选择器anchor修改时间:2026-06-20 17:54:40

免责声明:​ 已尽一切努力确保本网站所含信息的准确性。网站内容多为原创整理与精心编撰,观点力求客观中立。本站旨在免费分享,内容仅供个人学习、研究或参考使用。若引用了第三方作品,版权归原作者所有。如内容涉及您的权益,请联系我们处理。
内容垂直聚焦
专注技术核心技术栏目,确保每篇文章深度聚焦于实用技能。从代码技巧到架构设计,为用户提供无干扰的纯技术知识沉淀,精准满足专业提升需求。
知识结构清晰
覆盖从开发到部署的全链路。AI、前端、编程、数据库、服务器、建站、系统层层递进,构建清晰学习路径,帮助用户系统化掌握开发与运维所需的核心技术。
深度技术解析
拒绝泛泛而谈,深入技术细节与实践难点。无论是数据库优化还是服务器配置,均结合真实场景与代码示例进行剖析,致力于提供可直接应用于工作的解决方案。
专业领域覆盖
精准对应开发生命周期。从前端界面到后端编程,从数据库操作到服务器运维,形成完整闭环,一站式满足全栈工程师和运维人员的技术需求。
即学即用高效
内容强调实操性,步骤清晰、代码完整。用户可根据教程直接复现和应用于自身项目,显著缩短从学习到实践的距离,快速解决开发中的具体问题。
持续更新保障
专注既定技术方向进行长期、稳定的内容输出。确保各栏目技术文章持续更新迭代,紧跟主流技术发展趋势,为用户提供经久不衰的学习价值。