CSS 选择器是用于选择网页上的 HTML 元素并为其设置样式的模式。它们允许您针对特定元素或元素组来应用颜色、字体、边距等样式。 CSS 选择器是级联样式表 (CSS) 的基本组成部分,CSS 是一种用于控制 Web 文档的呈现和布局的语言。

选择器列表

如果多个选择器使用相同的CSS,那么这些选择器可以组合在一起形成一个选择器列表。因此,CSS 规则应用于所有单独的选择器。

例如,如果将相同的 CSS color: crimson 应用于 p 元素和 .sample 类,则写为:

p {
   color: crimson;
}

.sample {
   color: crimson;
} 

但是,我们可以将这两个规则组合成一个选择器列表,通过添加逗号将它们分开,如下所示:

p, .sample {
   color: crimson;
} 

以下语法将被视为无效,因为其中一个选择器无效( ..sample - 是定义类的错误方法)。

p {
   color: crimson;
}

..sample {
   color: crimson;
} 
p, ..sample {
   color: crimson;
} 
  • 选择器列表声明中逗号之前或之后的空格是可接受的。

  • 如果选择器列表中的任何选择器无效,则整个规则将被忽略并被视为无效。

  • 建议在新行中定义每个选择器,因为这样更易读。

CSS 选择器: 类型选择器

类型选择器的目标是HTML 元素,例如 <h1>、<p> 等。

p {
   color: green;
}

h1 {
   text-decoration-line: underline;
} 

以下示例演示类型选择器的使用:

<html>
<head>
<style>
   div {
      border: 5px inset gold;
      width: 300px;
      text-align: center;
   }

   p {
      color: green;
   } 

   h1 {
      text-decoration-line: underline;
   }
</style>
</head>
<body>
   <div>
     <h1>类型选择器</h1>
     <p>带边框且文本居中对齐的 div</p>
     <p>绿色段落</p>
     <p>h1 带下划线</p>
   </div>
</body>
</html> 

CSS 选择器: 类选择器

类选择器针对其类属性具有特定值的元素。

.style-h1 {
   text-decoration-line: underline;
}

.style-p {
   color: green;
   font-size: 25px;
} 

以下示例演示了类选择器的使用,其中 .style-p、.style-h1 和 .style-div 是类选择器:

<html>
<head>
<style>
   .style-div {
      border: 5px inset gold;
      width: 300px;
      text-align: center;
   }

   .style-p {
      color: green;
      font-size: 25px;
   } 

   .style-h1 {
      text-decoration-line: underline;
   }
</style>
</head>
<body>
   <div class="style-div">
      <h1 class="style-h1">类选择器</h1>
      <p class="style-p">应用 类.style-p </p>
      <p>没有在此 p 元素上应用类</p>
   </div>
</body>
</html> 

CSS 选择器: ID 选择器

ID 选择器针对具有特定 id 属性值的元素。

#style-p {
   color: green;
   font-size: 25px;
} 

#style-h1 {
   text-decoration-line: underline;
   color: red;
} 

以下示例演示了如何使用id 选择器,其中 #style-p、#style-h1 和 #style-div 是应用于元素的 id 选择器:

<html>
<head>
<style>
   #style-div {
      border: 5px inset purple;
      width: 300px;
      text-align: center;
      background-color: lightgoldenrodyellow;
   }

   #style-p {
      color: green;
      font-size: 25px;
   } 

   #style-h1 {
      text-decoration-line: underline;
      color: red;
   }
</style>
</head>
<body>
   <div id="style-div">
      <h1 id="style-h1">ID 选择器</h1>
      <p id="style-p">应用 #style-p </p>
      <p>没有ID 选择器应用此元素</p>
   </div>
</body>
</html> 

CSS 选择器: 属性选择器

属性选择器根据元素上的特定属性或属性值来定位元素。

a[target] {
   background-color: peachpuff;
} 

您还可以使用具有特定值的属性来指定元素。

a[href="https://www.yxjc123.com"] {
   background-color: peachpuff;
} 

以下示例演示了属性选择器的使用:

<html>
<head>
<style>
   a[target] {
      background-color: peachpuff;
      color: blueviolet;
      font-size: 2em;
   }
</style>
</head>
<body>
   <h2>属性选择器</h2>
  <p>应用于具有目标属性的锚元素的样式:</p>
   <a href="#">Yxjc123.com</a>
   <a href="#" target="_blank">baidu</a>
   <a href="#" target="_self">zhihu</a>
</body>
</html> 

CSS 选择器: 伪类选择器

伪类选择器用于设置元素特定状态的样式,例如使用:hover悬停时设置元素样式。

a :hover {
   background-color: peachpuff; 
   color: green;
   font-size: 2em;
} 

以下示例演示了伪类选择器的使用:

<html>
<head>
<style>
   a:hover {
      background-color: peachpuff;
      color: green;
      font-size: 2em;
   }
</style>
</head>
<body>
   <h2>伪类选择器</h2>
  <p>使用伪类将样式应用于锚元素:</p>

   <a href="#">Yxjc123.com</a>
</body>
</html> 

CSS 选择器: 伪元素选择器

伪元素选择器用于设置样式元素的特定部分而不是元素本身。

a::before {
   content: url();
} 

以下示例演示了伪元素选择器 (::before) 的使用:

<html>
<head>
<style>
   a::before {
      content: url('/css/images/smiley.png');
   }

   a::after {
      content: "   Pseudo-element ::after applied";
      color: red;
      background-color: chartreuse;
   }
</style>
</head>
<body>
      <h2>伪元素选择器</h2>
    <p>使用伪元素将样式应用于锚元素:</p>
   <a href="#">Yxjc123.com</a>
</body>
</html> 

CSS 选择器: 组合器

组合器显示了之间的关系选择器。可以使用组合器组合两个或多个简单选择器,以形成选择器。您可以在此处阅读有关组合器的更多信息。

以下示例演示了后代选择器(空格)和子组合器的使用:

<html>
<head>
<style>
   /* 样式仅应用于 div */
   div {
      border: 2px solid black;
      width: 300px;
   }
   /* 样式应用于直接位于 ul 下的所有 li 元素 */
   ul li {
      background-color: lightpink;
      color: purple;
      font-size: 1.5em;
      padding: 5px;
      margin-right: 15px;
   }

   /* 样式应用于作为 ol 元素子元素的所有 li 元素 */
   ol > li {
      background-color: bisque;
      color: black;
      font-size: 0.75em;
      padding: 5px;
   }
</style>
</head>
<body>
   <div>
   <ul>
      <li>Item One</li>
      <li>Item Two
         <ol>
            <li>Nested 1</li>
            <li>Nested 2</li>
         </ol></li>
      <li>Item Three</li>
      <li>Item Four</li>
      <li>Item Five
         <ol>
            <li>Nested 3</li>
            <li>Nested 4</li>
         </ol>
      </li>
   </ul>
   </div>
</body>
</html> 

CSS 选择器: 通用选择器

通用选择器,用星号 (*) 表示,是一种特殊的选择器,可以匹配 HTML 文档中的任何和所有元素。

/* 选择页面上的所有元素并设置样式 */
* {
   margin: 0;
   padding: 0;
} 

根据上述语法,通用选择器用于将 0 的边距和填充应用于所有 HTML 元素。

以下示例演示了通用选择器 (*) 的使用:

<html>
<head>
<style>
   * {
      background-color: peachpuff;
      color: darkgreen;
      font-size: 25px;
   }
</style>
</head>
<body>
   <h1>通用选择器 (*)</h1>

   <div>父元素
   <p>子段落 1</p>
    <p>子段落 2</p>
   </div>

   <p>第 3 段</p>

</body>
</html> 

CSS 选择器: 嵌套选择器

CSS 嵌套允许将一个样式规则嵌套在另一个规则中,子规则的选择器相对于父规则的选择器。

嵌套选择器显示了父子规则之间的关系。

  • 当浏览器解析嵌套选择器时,它会自动添加一个选择器之间的空格,从而创建新的 CSS 选择器规则。

  • 在需要将嵌套规则附加到父规则(没有任何空格)的情况下,例如使用伪类或复合选择器,必须立即添加 & 嵌套选择器才能获得所需的结果。

  • 为了反转规则的上下文,& 嵌套选择器可以

  • & 嵌套选择器可以有多个实例。

以下示例演示了 & 的使用嵌套选择器 (&):

<html>
<head>
<style>
   #sample {
      font-family: Verdana, Geneva, Tahoma, sans-serif;
      font-size: 1.5rem;
      & a {
         color: crimson;
         &:hover,
         &:focus {
            color: green;
            background-color: yellow;
         }
      }
   }
</style>
</head>
<body>
   <h1>CSS 嵌套选择器</h1>
   <p id="sample">
      将鼠标放在<a href="#">这里</a>看下效果。
   </p>
</body>
</html>