:target
**:target
** 是 CSS 的 伪类,表示一个具有与 URL 片段匹配的 id
的唯一元素(目标元素)。
css
/* Selects an element with an ID matching the current URL's fragment */
:target {
border: 2px solid black;
}
例如,以下 URL 有一个片段(由 `#` 符号表示),指向名为 `section2` 的元素。
url
http:/index.html#section2
当当前 URL 等于上述 URL 时,以下元素将被 :target
选择器选中。
html
<section id="section2">Example</section>
语法
css
:target {
/* ... */
}
**注意:** 由于 CSS 规范中可能存在的错误,:target
在 Web 组件 中不起作用,因为 影子根 不会将目标元素传递到影子树中。
示例
目录
:target
伪类可以用来突出显示从目录链接到的页面部分。
HTML
html
<h3>Table of Contents</h3>
<ol>
<li><a href="#p1">Jump to the first paragraph!</a></li>
<li><a href="#p2">Jump to the second paragraph!</a></li>
<li>
<a href="#nowhere">
This link goes nowhere, because the target doesn't exist.
</a>
</li>
</ol>
<h3>My Fun Article</h3>
<p id="p1">
You can target <i>this paragraph</i> using a URL fragment. Click on the link
above to try out!
</p>
<p id="p2">
This is <i>another paragraph</i>, also accessible from the links above. Isn't
that delightful?
</p>
CSS
css
p:target {
background-color: gold;
}
/* Add a pseudo-element inside the target element */
p:target::before {
font: 70% sans-serif;
content: "►";
color: limegreen;
margin-right: 0.25em;
}
/* Style italic elements within the target element */
p:target i {
color: red;
}
Result
规范
Specification |
---|
HTML Standard # selector-target |
Selectors Level 4 # the-target-pseudo |
浏览器兼容性
BCD tables only load in the browser