css伪类和伪元素(单冒号:和双冒号::的使用)
2018-02-05 本文已影响55人
xiaoxiaoxiao8
在CSS2之前规范不明确的时候,伪元素和伪类都使用单冒号(:)来表示。
比如 :before :after :hover
而CSS3规范中的要求使用双冒号(::)表示伪元素,以此来区分伪元素和伪类。
上面的例子用CSS3的规范就应该写成 ::before ::after :hover
为了兼容过去的写法,CSS3之前的伪元素仍然可以使用单冒号(:)来表示,浏览器是可以解析的。
比如 :before 和 ::before 都可以被浏览器解析。
但是CSS3之后出现的伪元素必须用双冒号表示,不再支持单冒号的形式。
-
伪类一般反映无法在CSS中轻松或者可靠检测到的某个元素的状态或者属性;
-
伪元素表示DOM外部的某种文档结构。
目前所有伪元素有(加粗的是CSS3之后出现):
-
::after
-
::before
-
::first-letter
-
::first-line
-
::selection
-
::backdrop
-
::placeholder
-
::marker
-
::spelling-error
-
::grammar-error