伪类和伪元素

伪类和伪元素是两个比较容易混淆的概念,在此稍微梳理一下。

css引入伪类和伪元素概念是为了格式化文档树以外的信息。

伪类用于当已有元素处于的某个状态时,为其添加对应的样式,这个状态是根据用户行为而动态变化的。如:first-child,这并不是文档树上的类,但逻辑上成立。

伪元素用于创建一些不在文档树中的元素,并为其添加样式。如:first-letter,这个成分在文档树上不成立,相当于新添加了一个span。

关于单双冒号

CSS3规范中的要求使用双冒号(::)表示伪元素,以此来区分伪元素和伪类,比如::before和::after等伪元素使用双冒号(::),:hover和:active等伪类使用单冒号(:)。除了一些低于IE8版本的浏览器外,大部分浏览器都支持伪元素的双冒号(::)表示方法。

然而,除了少部分伪元素,如::backdrop必须使用双冒号,大部分伪元素都支持单冒号和双冒号的写法,比如::after,写成:after也可以正确运行。

 参考http://web.jobbole.com/86181/

原文地址:https://www.cnblogs.com/cumting/p/6721134.html