天天看點

僞類和僞元素差別

僞類和僞元素的差別,其實很簡單,從字面上就可以了解。它們有一個共同的修飾詞“僞”,那麼“僞”是什麼意思呢?就是假的呗。是以,僞類就是假的類,僞元素就是假的元素,這就是在字面上它們之間的差別。下面我們再從定義上感受一下。

1.僞類

css2中給的定義  css僞類用于某些選擇器添加特殊的效果

css3中給的定義:僞類存在的意義是為了通過選擇器,格式化DOM樹以外的資訊以及不能被正常CSS選擇器擷取到的資訊。

僞類的功能有兩種:

  1. 擷取不存在與DOM樹中的資訊。比如

    <a>

    标簽的

    :link

    visited

    等,這些資訊不存在與DOM樹結構中,隻能通過CSS選擇器來擷取;
  2. 擷取不能被正常CSS選擇器擷取的資訊。比如僞類

    :target

    ,它的作用是比對文檔(頁面)的URI中某個标志符的目标元素,
僞類和僞元素差別
僞類和僞元素差別

2.僞元素

css2指出 僞元素用于某些選擇器設定特殊效果

僞元素可以建立一些文檔語言無法建立的虛拟元素。比如:文檔語言沒有一種機制可以描述元素内容的第一個字母或第一行,但僞元素可以做到(

::first-letter、::first-line

)。同時,僞元素還可以建立源文檔不存在的内容,比如使用 

::before

 或 

::after

僞類和僞元素差別

總結一下僞類與僞元素的特性及其差別:

  1. 僞類本質上是為了彌補正常CSS選擇器的不足,以便擷取到更多資訊;
  2. 僞元素本質上是建立了一個有内容的虛拟容器;
  3. CSS3中僞類和僞元素的文法不同;僞類用單冒号:表示;而僞元素用雙冒号::表示。一個選擇器可以同時使用多個僞類(但有的僞類會互斥);而一個選擇器隻能同時使用一個僞元素(未來的版本可能會支援多僞元素)。
  4. 可以同時使用多個僞類,而隻能同時使用一個僞元素;