此页面由社区从英文翻译而来。了解更多并加入 MDN Web Docs 社区。

View in English Always switch to English

在选择器中使用 :target 伪类

当一个 URL 使用 URL 片段标识符 指向文档中的特定部分时,用户可能难以察觉。本指南将探讨如何利用 CSS 突出显示 URL 的目标位置,从而提升用户体验。

选择目标

:target 伪类用于为文档中通过 URL 片段标识符确定的目标元素设置样式。例如,URL https://www.supremezsy.dpdns.org/zh-CN/docs/Web/CSS#参考 包含片段标识符 #参考。在 HTML 中,标识符通常作为 idname 属性的值出现,因为这两个属性共享同一命名空间。因此,上述示例 URL 将指向该文档中 id 为 参考 的元素。

若要为作为 URL 目标的任何 h2 元素设置样式,同时不影响其他类型的元素使其获得目标样式,请将 :target 伪类与类型选择器结合使用:

css
h2:target {
  outline: 2px solid;
}

同样的,将样式应用于特定的文档片段也是可行的。这是通过使用 URI 中相同的标识符实现的。例如,要在 #参考 文档片段中加入背景颜色,我们可以通过如下代码实现:

css
#参考:target {
  background-color: yellow;
}

定位所有元素

如果想要创建应用于所有目标元素的样式,那么可以使用通用选择器:

css
:target {
  color: red;
}

示例

在以下示例中,5 个链接指向了同一文档中的元素。例如,选择链接“一”会导致 <h1 id="one"> 成为目标元素。注意,由于目标元素有可能会被放置到浏览器窗口的顶层,因此文档可能会跳到新的滚动位置。

html
<h4 id="one">…</h4>
<p id="two">…</p>
<div id="three">…</div>
<a id="four">…</a> <em id="five">…</em>

<a href="#one">一</a>
<a href="#two">二</a>
<a href="#three">三</a>
<a href="#four">四</a>
<a href="#five">五</a>

结论

当片段标识符指向文档的某一部分时,读者可能会对应该阅读文档的哪一部分感到困惑。通过对 URI 的目标进行样式设置,可以减少或消除读者的困惑。

参见