target伪类选择器是什么?css:target选择器怎么用

来源:Java编程网作者:缅甸程序员头衔:程序员
导读:本期聚焦于小伙伴创作的《target伪类选择器是什么?css:target选择器怎么用》,敬请观看详情,探索知识的价值。以下视频、文章将为您系统阐述其核心内容与价值。如果您觉得《target伪类选择器是什么?css:target选择器怎么用》有用,将其分享出去将是对创作者最好的鼓励。

target伪类选择器是CSS中用于匹配当前活动锚点目标元素的选择器,当页面URL中的片段标识符(也就是URL中#后面的部分)和页面内某个元素的id属性值完全一致时,该选择器就会匹配到对应的元素并应用样式。这个选择器不需要依赖JavaScript就能实现简单的前端交互效果,在前端开发中有着不少实用的应用场景。

target伪类选择器是什么?css:target选择器怎么用

target伪类选择器的基本语法

target伪类选择器的语法非常简单,基础格式如下:

/* 匹配所有被激活的目标元素 */
:target {
    /* 样式规则 */
}

/* 匹配指定id的目标元素 */
#targetElement:target {
    /* 样式规则 */
}

需要注意的是,只有当URL中的片段标识符和页面内元素的id完全匹配时,对应的样式才会生效。比如当前URL是https://ipipp.com/#section1,那么页面中id为section1的元素就会被:target选择器匹配到。

target伪类选择器的常见使用场景

场景一:点击锚点后高亮对应区域

最常见的用法就是点击导航锚点后,高亮显示对应的内容区域,让用户清楚当前查看的是哪个部分的内容。示例代码如下:

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <title>target选择器高亮示例</title>
    <style>
        .content-section {
            padding: 20px;
            margin: 10px 0;
            border: 1px solid #ccc;
            transition: all 0.3s ease;
        }
        /* 目标元素高亮样式 */
        .content-section:target {
            background-color: #e6f7ff;
            border-color: #1890ff;
            box-shadow: 0 0 8px rgba(24, 144, 255, 0.3);
        }
    </style>
</head>
<body>
    <nav>
        <a href="#section1">第一部分</a>
        <a href="#section2">第二部分</a>
        <a href="#section3">第三部分</a>
    </nav>
    <div class="content-section" id="section1">
        <h3>第一部分内容</h3>
        <p>这是第一部分的详细内容,当点击导航中的第一部分链接时,这个区域会高亮显示。</p>
    </div>
    <div class="content-section" id="section2">
        <h3>第二部分内容</h3>
        <p>这是第二部分的详细内容,当点击导航中的第二部分链接时,这个区域会高亮显示。</p>
    </div>
    <div class="content-section" id="section3">
        <h3>第三部分内容</h3>
        <p>这是第三部分的详细内容,当点击导航中的第三部分链接时,这个区域会高亮显示。</p>
    </div>
</body>
</html>

场景二:实现无JavaScript的选项卡切换

利用target伪类选择器还可以实现不需要JavaScript的选项卡切换效果,通过点击不同的标签显示对应的内容区域。示例代码如下:

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <title>target选择器实现选项卡</title>
    <style>
        .tab-nav {
            display: flex;
            list-style: none;
            padding: 0;
            margin: 0;
            border-bottom: 1px solid #ccc;
        }
        .tab-nav li {
            padding: 10px 20px;
            cursor: pointer;
            border: 1px solid transparent;
            border-bottom: none;
            margin-bottom: -1px;
        }
        .tab-nav li a {
            text-decoration: none;
            color: #333;
        }
        .tab-content {
            padding: 20px;
            border: 1px solid #ccc;
            border-top: none;
            display: none;
        }
        /* 目标内容区域显示 */
        .tab-content:target {
            display: block;
        }
        /* 默认显示第一个选项卡内容 */
        .tab-content:first-child {
            display: block;
        }
        /* 点击后对应导航高亮 */
        #tab1:target ~ .tab-nav li:first-child,
        #tab2:target ~ .tab-nav li:nth-child(2),
        #tab3:target ~ .tab-nav li:nth-child(3) {
            background-color: #fff;
            border-color: #ccc;
            border-bottom-color: #fff;
        }
    </style>
</head>
<body>
    <div class="tab-container">
        <div class="tab-content" id="tab1">
            <h3>选项卡一内容</h3>
            <p>这是第一个选项卡的内容,默认会显示。</p>
        </div>
        <div class="tab-content" id="tab2">
            <h3>选项卡二内容</h3>
            <p>这是第二个选项卡的内容,点击选项卡二标签会显示这个区域。</p>
        </div>
        <div class="tab-content" id="tab3">
            <h3>选项卡三内容</h3>
            <p>这是第三个选项卡的内容,点击选项卡三标签会显示这个区域。</p>
        </div>
        <ul class="tab-nav">
            <li><a href="#tab1">选项卡一</a></li>
            <li><a href="#tab2">选项卡二</a></li>
            <li><a href="#tab3">选项卡三</a></li>
        </ul>
    </div>
</body>
</html>

使用target伪类选择器的注意事项

  • 目标元素的id值必须和URL中的片段标识符完全一致,区分大小写,否则不会生效。
  • 页面初始加载时如果没有对应的片段标识符,那么所有匹配:target的元素都不会应用对应样式。
  • 如果需要兼容非常旧的浏览器,需要提前确认目标浏览器是否支持这个选择器,不过目前主流浏览器都已经全面支持。
  • 不要滥用这个选择器实现复杂的交互逻辑,复杂场景还是建议结合JavaScript实现,避免样式和交互逻辑过度耦合。

target伪类选择器是一个轻量且实用的CSS特性,合理使用可以减少不必要的JavaScript代码,提升页面的加载性能和可维护性。开发者可以根据实际的业务场景选择合适的使用方式,充分发挥它的作用。

CSStarget伪类选择器前端开发选择器用法修改时间:2026-07-17 08:03:14

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