首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

:target

:targetCSS伪类代表一个其id能与URL的段落(fragment)相匹配的唯一元素(目标元素)。

代码语言:javascript
复制
/* Selects an element with an ID matching the current URL's fragment */
:target {
  border: 2px solid black;
}

例如,下面的URL有一个片段(用符号表示)指向一个名为section2的段落:

代码语言:javascript
复制
http://www.example.com/index.html#section2

当前URL等于上述内容时,:target选择器将选择以下元素:

代码语言:javascript
复制
<section id="section2">Example</section>

语法

代码语言:javascript
复制
:target

实例

目录

:target伪类可用于突出显示页面中与目录链接的部分。

HTML

代码语言:javascript
复制
<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

代码语言:javascript
复制
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: .25em;
}

/* Style italic elements within the target element */
p:target i {
  color: red;
}

结果

纯css灯箱

您可以使用:target伪类来创建一个灯箱,而不使用任何JavaScript。这种技术的核心在于于利用锚点链接指向页面中隐藏元素。一旦这些隐藏元素被定为跳转目标,在CSS中的:targe选择器中的代码会改变它们display属性以显示它们。

注意:GitHubdemo提供了一个更完整的基于:target伪类的纯CSS的灯箱。

HTML

代码语言:javascript
复制
<ul>
  <li><a href="#example1">Open example #1</a></li>
  <li><a href="#example2">Open example #2</a></li>
</ul>

<div class="lightbox" id="example1">
  <figure>
    <a href="#" class="close"></a>
    <figcaption>Lorem ipsum dolor sit amet, consectetur adipiscing elit.
      Donec felis enim, placerat id eleifend eu, semper vel sem.</figcaption>
  </figure>
</div>

<div class="lightbox" id="example2">
  <figure>
    <a href="#" class="close"></a>
    <figcaption>Cras risus odio, pharetra nec ultricies et,
      mollis ac augue. Nunc et diam quis sapien dignissim auctor.
      Quisque quis neque arcu, nec gravida magna.</figcaption>
  </figure>
</div>

CSS

代码语言:javascript
复制
/* Unopened lightbox */
.lightbox {
  display: none;
}

/* Opened lightbox */
.lightbox:target {
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
}

/* Lightbox content */
.lightbox figcaption {
  width: 25rem;
  position: relative;
  padding: 1.5em;
  background-color: lightpink;
}

/* Close button */
.lightbox .close {
  position: relative;
  display: block;
}

.lightbox .close::after {
  right: -1rem;
  top: -1rem;
  width: 2rem;
  height: 2rem;
  position: absolute;
  display: flex;
  z-index: 1;
  align-items: center;
  justify-content: center;
  background-color: black;
  border-radius: 50%;
  color: white;
  content: "×";
  cursor: pointer;
}

/* Lightbox overlay */
.lightbox .close::before {
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  position: fixed;
  background-color: rgba(0,0,0,.7);
  content: "";
  cursor: default;
}

结果

规范

Specification

Status

Comment

HTML Living StandardThe definition of ':target' in that specification.

Living Standard

Defines HTML-specific semantics.

Selectors Level 4The definition of ':target' in that specification.

Working Draft

No changes.

Selectors Level 3The definition of ':target' in that specification.

Recommendation

Initial definition.

浏览器兼容性

Feature

Chrome

Edge

Firefox (Gecko)

Internet Explorer

Opera

Safari

Basic support

1.0

(Yes)

1.0 (1.7 or earlier)

9

9.5

1.3

Feature

Android

Edge

Firefox Mobile (Gecko)

IE Mobile

Opera Mobile

Safari Mobile

Basic support

2.1

(Yes)

1.0 (1.7 or earlier)

9.0

9.5

2.0

扫码关注腾讯云开发者

领取腾讯云代金券

http://www.vxiaotou.com