伪类和伪元素

Posted belongs-to-qinghua

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了伪类和伪元素相关的知识,希望对你有一定的参考价值。

一、定义

  • 伪类一般反映无法在CSS中轻松或者可靠检测到的某个元素的状态或者属性;

  • 伪元素表示DOM外部的某种文档结构。

  目前所有伪元素有(加粗的是CSS3之后出现):

  1. ::after

  2. ::before

  3. ::first-letter

  4. ::first-line

  5. ::selection

  6. ::backdrop

  7. ::placeholder

  8. ::marker

  9. ::spelling-error

  10. ::grammar-error

二、":before" 和 "::after" 伪元素单冒号和双冒号的区别

  如果你的网站只需要兼容webkit、Firefox、Opera等浏览器,建议对伪元素采用双冒号的写法,如果不得不兼容IE浏览器,还是用CSS2的单冒号写法更安全。

  原因:

    1. 在CSS2之前规范不明确的时候,伪元素和伪类都使用单冒号(:)来表示。
    2. 而CSS3规范中的要求使用双冒号(::)表示伪元素,以此来区分伪元素和伪类。
    3. 为了兼容过去的写法,CSS3之前的伪元素仍然可以使用单冒号(:)来表示,浏览器是可以解析的。
    4. 但是CSS3之后出现的伪元素必须用双冒号表示,不再支持单冒号的形式。

以上是关于伪类和伪元素的主要内容,如果未能解决你的问题,请参考以下文章

浅谈css伪类和伪元素的区别、优先级

伪类和伪元素

伪类和伪元素的区别

伪类和伪元素

伪类和伪元素有啥区别?

总结伪类和伪元素的区别