僞類、僞元素、錨僞類

僞類

CSS2中對僞類的定義是:CSS 僞類用於向某些選擇器添加特殊的效果。css

截止css2,僞類有如下幾種:html

CSS3中對僞類的定義以下:瀏覽器

  • 僞類存在的意義是爲了經過選擇器找到那些不存在與DOM樹中的信息(如::link、:visited)以及不能被常規CSS選擇器獲取到的信息(:target用來匹配文檔(頁面)的URI中某個標誌符的目標元素)。
  • 僞類由一個冒號:開頭,冒號後面是僞類的名稱和包含在圓括號中的可選參數。
  • 任何常規選擇器能夠再任何位置使用僞類。僞類語法不區別大小寫。一些僞類的做用會互斥,另一些僞類能夠同時被同一個元素使用。而且,爲了知足用戶在操做DOM時產生的DOM結構改變,僞類也能夠是動態的。

CSS3新增的僞類以下:

新增僞類 做用  
E:first-child 匹配做爲父元素的第一個子元素E,與E:nth-child(1)等同  結構僞類選擇器
E:last-child 匹配做爲父元素的最後一個子元素E,與E:nth-last-child(1)等同
E:root  選擇匹配元素E所在文檔的根元素。在HTML文檔中,根元素始終是html
p:nth-child(n) 選擇屬於其父元素的第n個子元素的每一個<p>元素。
p:nth-last-child(n) 選擇屬於其父元素的倒數第n個子元素的每一個<p>元素。
p:nth-of-type(n) 選擇屬於其父元素第n個<p>元素的每一個<p>元素。
p:nth-last-of-type(n)  選擇屬於其父元素倒數第n個<p>元素的每一個<p>元素。
p:first-of-type 選擇屬於其父元素的首個<p>元素的每一個<p>元素。
p:last-of-type 選擇屬於其父元素的最後<p>元素的每一個<p>元素。
p:only-of-type 選擇屬於其父元素惟一的<p>元素的每一個<p>元素。
p:only-child 選擇屬於其父元素惟一的子元素的每一個<p>元素。
p:empty 選擇沒有子元素的每一個<p>元素(包括文本節點)。
p:target  選擇當前活動的<p>元素。  目標僞類選擇器
:not(p) 選擇非<p>元素的每一個元素。  否認僞類選擇器
:enabled 可用狀態的控制表單控件。  UI元素狀態僞類選擇器
:disabled  禁用狀態的控制表單控件。
:checked  單選框或複選框被選中的元素。

僞元素

CSS2中,對於僞類和僞元素的定義是徹底同樣的。spa

截止CSS2,僞元素有如下幾種:3d

CSS3對僞元素的定義以下:code

  • 僞元素在DOM樹中建立了一些抽象元素,這些抽象元素是不存在於文檔語言裏的(能夠理解爲html源碼)。好比:documen接口不提供訪問元素內容的第一個字或者第一行的機制,而僞元素能夠使開發者能夠提取到這些信息。而且,一些僞元素能夠使開發者獲取到不存在於源文檔中的內容(好比常見的::before,::after)。
  • 僞元素的由兩個冒號::開頭,而後是僞元素的名稱。使用兩個冒號::是爲了區別僞類和僞元素(CSS2中並無區別)。固然,考慮到兼容性,CSS2中已存的僞元素仍然能夠使用一個冒號:的語法,可是CSS3中新增的僞元素必須使用兩個冒號::htm

  • 一個選擇器只能使用一個僞元素,而且僞元素必須處於選擇器語句的最後。

簡單來講,僞元素建立了一個虛擬容器,這個容器不包含任何DOM元素,可是能夠包含內容。另外,開發者還能夠爲僞元素定製樣式。blog

CSS3中的僞元素爲:接口

僞元素 做用
::first-letter 將樣式添加到文本的首字母
::first-line 將樣式添加到文本的首行
::before 在某元素以前插入某些內容
::after 在某元素以後插入某些內容
::selection  用來匹配突出顯示的文本

僞類和僞元素的特性與區別

  1. 僞類本質上是爲了彌補常規CSS選擇器的不足,以便獲取到更多信息;
  2. 僞元素本質上是建立了一個有內容的虛擬容器;
  3. CSS3中僞類和僞元素的語法不一樣;
  4. 能夠同時使用多個僞類,而只能同時使用一個僞元素;

錨僞類

在支持 CSS 的瀏覽器中,連接的不一樣狀態均可以不一樣的方式顯示,這些狀態包括:活動狀態,已被訪問狀態,未被訪問狀態,和鼠標懸停狀態。ci

a:link  未訪問的連接
a:visited  已訪問的連接
a:hover  鼠標移動到連接上
a:active  選定的連接
相關文章
相關標籤/搜索