target

CSS :target Pseudo Class

The :target pseudo-class is used to highlight the section of a page linked to from a table of contents. It styles an element that is the target of an internal link in a document.

The :target pseudo-class represents the target element with an id matching the URL’s fragment.

Pure-CSS lightbox

Pure-CSS lightbox

The :target pseudo-class is used to create a lightbox without any JavaScript part. This method uses the ability of anchor links to point to those elements that are hidden on the page, by default. When they are targeted, CSS changes their display so as to be shown.

Version

Version (版本)

Selectors Level 4 (选择器级别4)

Selectors Level 3 (选择器级别3)

Syntax

Syntax (语法)

:target {
 css declarations;
}

Example of the :target selector:

<!DOCTYPE html>
<html>
 <head>
   <title>Title of the document</title>
   <style>
     :target {
       border: 2px solid #1c87c9;
       background-color: #eeeeee;
     }
   </style>
 </head>
 <body>
   <h2>:target selector example</h2>
   <p>
     <a href="#example1">Jump to Paragraph 1</a>
   </p>
   <p>
     <a href="#example2">Jump to Paragraph 2</a>
   </p>
   <p id="example1">
     <strong>Paragraph 1</strong>
   </p>
   <p id="example2">
     <strong>Paragraph 2</strong>
   </p>
 </body>
</html>

Example of using the :target psudo-class to create a tabbed menu:

<!DOCTYPE html>
<html>
 <head>
   <style>
     .tab-menu div {
       display: none;
       background-color: #f5f5f5;
       padding: 0 20px 20px;
     }
     .tab-menu a {
       text-decoration: none;
       padding: 10px;
       margin: 20px 0;
       display: inline-block;
     }
     .tab-menu div:target {
       display: block;
     }
   </style>
 </head>
 <body>
   <h1>:target selector example</h1>
   <div class="tab-menu">
     <a href="#html">HTML</a>
     <a href="#css">CSS</a>
     <a href="#php">PHP</a>
     <div id="html">
       <h2>
         <a href="https://www.w3cdoc.com/learn-html.html">Lean HTML</a>
       </h2>
       <p>HTML-Hyper Text Markup Language
       </p>
     </div>
     <div id="css">
       <h2>
         <a href="https://www.w3cdoc.com/learn-css.html">Learn CSS</a>
       </h2>
       <p>CSS-Cascading Style Sheets
       </p>
     </div>
     <div id="php">
       <h2>
         <a href="https://www.w3cdoc.com/learn-php.html">Learn PHP</a>
       </h2>
       <p>PHP-Hyertext Preprocessor
       </p>
     </div>
   </div>
 </body>
</html>

Example of using the :target pseudo-class to create a modal box:

<!DOCTYPE html>
<html>
 <head>
   <style>
     h1+a {
       text-decoration: none;
       padding: 10px 20px;
       background-color: #8ebf42;
       color: #ffffff;
       font-family: sans-serif;
     }
     /* Add animation (Chrome, Safari, Opera) */
(/*添加动画( Chrome、Safari、Opera ) */)
     @-webkit-keyframes example {
       from {
         top: -100px;
         opacity: 0;
       }
       to {
         top: 0px;
         opacity: 1;
       }
     }
     /* Add animation (Standard syntax) */
(/*添加动画(标准语法) */)
     @keyframes example {
       from {
         top: -100px;
         opacity: 0;
       }
       to {
         top: 0px;
         opacity: 1;
       }
     }
     /* The modal's background */
(/*模态背景*/)
     .modal {
       display: none;
       position: fixed;
       left: 0;
       top: 0;
       width: 100%;
       height: 100%;
       overflow: auto;
       background-color: rgb(0, 0, 0);
       background-color: rgba(0, 0, 0, 0.4);
     }
     /* Display the modal when targeted */
(/*目标时显示模态*/)
     .modal:target {
       display: table;
       position: absolute;
     }
     /* The modal box */
(/*模态框*/)
     .modal-dialog {
       display: table-cell;
       vertical-align: middle;
     }
     /* The modal's content */
(/*模式的内容*/)
     .modal-dialog .modal-content {
       margin: auto;
       background-color: #f3f3f3;
       position: relative;
       padding: 0;
       outline: 0;
       border: 1px #777 solid;
       text-align: justify;
       width: 80%;
       box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);
       /* Add animation */
(加入动画)
       -webkit-animation-name: example;
       /* Chrome, Safari, Opera */
(/* Chrome、Safari、Opera */)
       -webkit-animation-duration: 0.5s;
       /* Chrome, Safari, Opera */
(/* Chrome、Safari、Opera */)
       animation-name: example;
       animation-duration: 0.5s;
     }
     /* The button used to close the modal */
(/*用于关闭模式的按钮*/)
     .closebtn {
       text-decoration: none;
       float: right;
       font-size: 35px;
       font-weight: bold;
       color: #fff;
     }
     .closebtn:hover,
     .closebtn:focus {
       color: #000;
       text-decoration: none;
       cursor: pointer;
     }
     .container {
       padding: 2px 16px;
       text-align: center;
       line-height: 1.6;
     }
     header {
       background-color: #337ab7;
       font-size: 25px;
       color: white;
     }
     header h2 {
       text-align: left;
     }
     footer {
       background-color: #337ab7;
       font-size: 20px;
       color: white;
     }
     footer p {
       text-align: right;
     }
   </style>
 </head>
 <body>
   <h1>:target selector example</h1>
   <a href="#modal">Open Modal</a>
   <div id="modal" class="modal">
     <div class="modal-dialog">
       <div class="modal-content">
         <header class="container">
           <a href="#" class="closebtn">×</a>
           <h2>Header</h2>
         </header>
         <div class="container">
           <p>Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book.</p>
         </div>
         <footer class="container">
           <p>Footer</p>
         </footer>
       </div>
     </div>
   </div>
 </body>
</html>

There is a slight difference between modal boxes and lightboxes. Lightboxes can be closed by clicking outside the pop-up, while modal boxes can only be closed by interacting inside the pop-up. (模态框和灯箱之间存在轻微差异。灯箱可以通过单击弹出窗口外部来关闭,而模式框只能通过在弹出窗口内部进行交互来关闭。)

Example of using the :target pseudo-class to create a lightbox:

<!DOCTYPE html>
<html>
 <head>
   <style>
     h1+a {
       background-color: #8ebf42;
       padding: 20px 40px;
       color: #ffffff;
       text-decoration: none;
       font-size: 20px;
       margin: 15px 0;
       display: inline-block;
     }
     /* 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: #8ebf42;
     }
     /* 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;
     }
   </style>
 </head>
 <body>
   <h1>:target selector example</h1>
   <a href="#lightbox">Open Lightbox</a>
   <div class="lightbox" id="lightbox">
     <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>
 </body>
</html>


请遵守《互联网环境法规》文明发言,欢迎讨论问题
扫码反馈

扫一扫,反馈当前页面

咨询反馈
扫码关注
返回顶部