如何用css:target制作单页导航高亮

来源:Golang编程网作者:鱼儿头衔:草根站长
导读:本期聚焦于小伙伴创作的《如何用css:target制作单页导航高亮》,敬请观看详情,探索知识的价值。以下视频、文章将为您系统阐述其核心内容与价值。如果您觉得《如何用css:target制作单页导航高亮》有用,将其分享出去将是对创作者最好的鼓励。

在单页网站开发中,我们常常需要在用户点击导航链接跳转到对应内容区块时,让该区块呈现出高亮状态,从而提升阅读体验。借助 CSS 的 :target 伪类,可以仅用样式表完成这件事,无需任何脚本参与。

如何用css:target制作单页导航高亮

什么是 :target 伪类

:target 是 CSS3 引入的伪类,当浏览器地址栏中的 URL 片段(即 # 后面的部分)与页面中某个元素的 id 相匹配时,该元素就成为目标元素,:target 便会命中它。例如地址为 index.html#section2,那么 id="section2" 的元素就可以通过 section:target 被选中。

基础 HTML 结构

我们先写一个简单的单页结构,包含导航与几个内容区块:

<nav>
  <a href="#sec1">第一节</a>
  <a href="#sec2">第二节</a>
  <a href="#sec3">第三节</a>
</nav>
<section id="sec1">
  <h3>第一节内容</h3>
  <p>这是第一节的相关说明文字。</p>
</section>
<section id="sec2">
  <h3>第二节内容</h3>
  <p>这是第二节的相关说明文字。</p>
</section>
<section id="sec3">
  <h3>第三节内容</h3>
  <p>这是第三节的相关说明文字。</p>
</section>

使用 :target 实现高亮

下面这段 CSS 给所有 section 一个默认样式,当某个 section 被 target 命中时,改变它的背景与边框,形成高亮:

section {
  padding: 20px;
  margin: 10px 0;
  border: 1px solid #ddd;
  background: #fafafa;
  transition: all .3s ease;
}

section:target {
  background: #fffae6;
  border-color: #ffb300;
  box-shadow: 0 0 8px rgba(255,179,0,.4);
}

导航自身的高亮处理

有时我们还想让被点击的导航链接也高亮。由于 :target 只能选中的元素是内容区块,导航链接本身不是目标,但可以利用兄弟或父子关系间接控制,或者给每个链接配一个对应规则:

nav a {
  color: #333;
  text-decoration: none;
  padding: 6px 10px;
}

/* 当sec1为目标时高亮第一个链接 */
#sec1:target ~ nav a[href="#sec1"] {
  color: #ffb300;
  font-weight: bold;
}

如果导航在内容区块之前,上面这种兄弟选择器写法需要调整结构。更简单的做法是把导航放在每个 section 内部或用 JS 辅助,但纯 CSS 方案在多数布局中已足够使用。

注意事项

  • 确保每个区块的 id 唯一且与导航 href 中的片段一致。
  • 页面加载时若没有 # 片段,所有区块都不会高亮,这是正常表现。
  • 旧版 IE 不支持 :target,但现代浏览器均已良好支持。
通过 css:target 制作单页导航高亮,既减少了脚本依赖,也让页面更轻量易维护。

css_target单页导航高亮修改时间:2026-07-29 10:03:18

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