今天在看JS DOM編程的時候,看到關於網頁的三位一體,其中說到因爲僞類的存在,使得css能夠根據用戶觸發的事件改變元素的呈現效果。 這本屬於行爲層的範圍。css
由於之前只會用,理解的不清晰,因此就查詢了下到底什麼是僞類。html
轉自藍色理想:http://www.blueidea.com/tech/site/2006/4221.asp編程
在CSS中,模式(pattern)匹配規則決定那種樣式規則應用於文檔樹(document tree)的哪一個元素。這些模式叫着選擇符(selector)。 一條CSS規則(rule)是選擇器{屬性:值;屬性:值;}(selector {property:value;property1:value2;}),即選擇符決定了{}中的聲明(declaration)匹配哪一個元素。ide
在CSS2.1中的選擇符語法見下圖,由語法造成了各類選擇符。idea
類:在HTML中當表現class屬性的時候,人們能夠用點(.)號來做爲~=號的一個替代選擇,因此div.value等同於div[class~=value]。此時.value只能嚴格的應用於HTML中的class屬性,因此此類選擇符叫類選擇符。設計
在CSS2.1中樣式一般依附與一個元素在文檔樹中的位置,這個簡單的模型對於許多狀況來講是足夠的,可是一些常見的版式狀態不能應用於文檔樹的結構。例如,在HTML中,沒有元素可以引用一個段落的第一行,因此也沒有簡單的CSS選擇符應用它。3d
因此,CSS引進了僞類(pseudo-class)和僞元素(pseudo-element)來容許基於文檔樹意外信息的格式化。htm
僞類:僞類對元素進行分類是基於特徵(characteristics)而不是它們的名字、屬性或者內容;原則上特徵是不能夠從文檔樹上推斷獲得的。在感受上僞類能夠是動態的,當用戶和文檔進行交互的時候一個元素能夠獲取或者失去一個僞類。例外的是":first-child"能經過文檔樹推斷出來,":lang"在一些狀況下也在從文檔樹中推斷出來。blog
僞類有::first-child ,:link:,vistited,:hover:,active:focus,:lang
僞元素:僞元素是創造關於文檔語言可以指定的文檔樹以外的抽象。例如文檔語言不能提供訪問元素內容第一字或者第一行的機制。僞元素容許設計師引用它們,不然這是難以辦到的。僞元素還提供樣式設計師給在源文檔中不存在的內容分配樣式(例如::before和:after可以訪問產生的內容)。事件
僞元素有::first-line,:first-letter,:before,:after (在蘇沈小雨編的CSS2.0中文手冊中把:first-line,:first-letter列爲僞類應該是理解上的錯誤)
僞類和僞元素都不出如今源文件和文檔樹中。
總結上面能夠知道:
Refer:http://www.w3.org/TR/CSS21/selector.html