偽元素主要有以下六個:
::first-line
::first-letter
::after
::before
::selection
::backdrop
有時你會發現偽元素使用了兩個冒號 (::) 而不是一個冒號 (:),這是 CSS3 規范中的一部分要求,目的是為了區分偽類和偽元素。大多數瀏覽器都支持這兩種表示方式。只有 ::selection 永遠只能以兩個冒號開頭(::)。
::first-line
:first-line用于向文本的首行設置特殊樣式,只能用于塊級元素。
可應用于 "first-line" 偽元素的屬性有:
font
color
background
word-spacing
letter-spacing
text-decoration
vertical-align
text-transform
line-height
clear
::first-letter
:first-letter用于向文本的首字母設置特殊樣式。只能用于塊級元素。
可應用于 "first-letter" 偽元素的屬性有:
font
color
background
margin
padding
border
text-decoration
vertical-align (僅當 float 為 none 時)
text-transform
line-height
float
clear
::before
:before可在元素的內容前面插入新內容。默認地,這個偽元素是行內元素,可使用屬性 display 改變這一點。
所有主流瀏覽器都支持 :before 偽元素。
::after
:after可以在元素的內容之后插入新內容。
用法和兼容性與:before類似。
CSS 引入偽類和偽元素的概念是為了實現基于文檔樹之外的信息的格式化。
偽類和偽元素的根本區別在于:它們是否創造了新的元素(抽象)。
偽類是在既有元素上添加類別(在邏輯上存在,但并不實際存在于文檔樹中),而偽類選擇器則是添加新元素。
而這也是為什么,標準精確地使用 "create" 一詞來解釋偽元素,而使用 "classify" 一詞來解釋偽類的原因。
CSS Selector Level 3 為了區分這兩者的混淆,而特意用冒號加以區分:
偽類用一個冒號表示 :first-child
偽元素則使用兩個冒號表示 ::first-line
——(備注:摘抄自:http://swordair.com/origin-and-difference-between-css-pseudo-classes-and-pseudo-elements/)
::selection
::selection可用來匹配突出顯示的文本。瀏覽器默認情況下,選擇網站文本是深藍背景白色字體。
::selection僅接受兩個屬性,分別是background和color。
兼容性:Webkit內核和IE9以上版本瀏覽器支持,Firefox需要加上私有屬性“-moz-”。