CSS3选择器提供了多种方法来选择HTML文档中的元素,让样式能够更精确地应用到特定的元素上。下面是一些常见的CSS3选择器,以及有关CSS优先级的一些建议:

基本选择器:

1. Universal Selector(通用选择器):
   * {
     /* 应用于所有元素 */
   }

2. Type Selector(类型选择器):
   p {
     /* 应用于所有段落元素 */
   }

3. Class Selector(类选择器):
   .example {
     /* 应用于所有类名为example的元素 */
   }

4. ID Selector(ID选择器):
   #header {
     /* 应用于所有ID为header的元素 */
   }

层次选择器:

5. Descendant Selector(后代选择器):
   article p {
     /* 应用于article元素下的所有段落元素 */
   }

6. Child Selector(子元素选择器):
   section > p {
     /* 应用于section元素下的直接子元素是段落的元素 */
   }

7. Adjacent Sibling Selector(相邻兄弟选择器):
   h2 + p {
     /* 应用于紧接在h2元素后面的段落元素 */
   }

8. General Sibling Selector(兄弟选择器):
   h2 ~ p {
     /* 应用于h2元素后面的所有兄弟段落元素 */
   }

属性选择器:

9. Attribute Selector(属性选择器):
   input[type="text"] {
     /* 应用于所有type属性为text的input元素 */
   }

10. Attribute Starts With Selector(属性值以某字符串开始的选择器):
   a[href^="https"] {
     /* 应用于href属性以https开头的所有链接元素 */
   }

11. Attribute Ends With Selector(属性值以某字符串结束的选择器):
    a[href$=".pdf"] {
      /* 应用于href属性以.pdf结尾的所有链接元素 */
    }

12. Attribute Contains Selector(属性值包含某字符串的选择器):
    a[href*="example"] {
      /* 应用于href属性包含"example"的所有链接元素 */
    }

伪类和伪元素选择器:

13. :hover 伪类:
    a:hover {
      /* 鼠标悬停时应用的样式 */
    }

14. :nth-child 伪类:
    li:nth-child(odd) {
      /* 应用于所有奇数位置的li元素 */
    }

15. :not 伪类:
    p:not(.special) {
      /* 应用于不含有特定类的所有段落元素 */
    }

16. ::before 伪元素:
    p::before {
      /* 在每个段落前插入内容 */
      content: "前缀";
    }

CSS优先级要点:

  •  ID选择器优先级最高: ID选择器的权重最高,它会覆盖其他选择器。

  •  内联样式优先级高于其他样式: 直接在HTML元素上使用style属性的样式优先级高于外部样式表的样式。

  •  通用选择器权重最低: 通用选择器的权重较低,容易被其他选择器覆盖。

  •  !important 规则: 使用 !important 规则可以覆盖其他样式,但应慎用,因为它会增加样式表的维护难度。


在实际开发中,理解这些选择器和优先级的原则,有助于更有效地管理和调整样式。优先使用更具体的选择器,避免过度使用!important,以确保样式表的可维护性。


转载请注明出处:http://www.zyzy.cn/article/detail/4068/CSS