伪类和伪元素

一、定义

  • 伪类一般反映无法在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之后出现的伪元素必须用双冒号表示,不再支持单冒号的形式。
原文地址:https://www.cnblogs.com/belongs-to-qinghua/p/11352728.html