伪类和伪元素
一、定义
-
伪类一般反映无法在CSS中轻松或者可靠检测到的某个元素的状态或者属性;
-
伪元素表示DOM外部的某种文档结构。
目前所有伪元素有(加粗的是CSS3之后出现):
-
::after
-
::before
-
::first-letter
-
::first-line
-
::selection
-
::backdrop
-
::placeholder
-
::marker
-
::spelling-error
-
::grammar-error
二、":before" 和 "::after" 伪元素单冒号和双冒号的区别
如果你的网站只需要兼容webkit、Firefox、Opera等浏览器,建议对伪元素采用双冒号的写法,如果不得不兼容IE浏览器,还是用CSS2的单冒号写法更安全。
原因:
- 在CSS2之前规范不明确的时候,伪元素和伪类都使用单冒号(:)来表示。
- 而CSS3规范中的要求使用双冒号(::)表示伪元素,以此来区分伪元素和伪类。
- 为了兼容过去的写法,CSS3之前的伪元素仍然可以使用单冒号(:)来表示,浏览器是可以解析的。
- 但是CSS3之后出现的伪元素必须用双冒号表示,不再支持单冒号的形式。