天天看點

css僞類與僞元素差別

僞類

僞類就是一種虛構的狀态或者說是一個具有特殊屬性的元素可以使用CSS進行樣式修飾。

僞類選擇元素基于的是目前元素處于的狀态,或者說元素目前所具有的特性,而不是元素的id、class、屬性等靜态的标志。由于狀态是動态變化的,是以一個元素達到一個特定狀态時,它可能得到一個僞類的樣式;當狀态改變時,它又會失去這個樣式。由此可以看出,它的功能和class有些類似,但它是基于文檔之外的抽象,是以叫僞類。

特點:

1.擷取不存在與DOM樹中的資訊。比如a标簽的:link、visited等,這些資訊不存在與DOM樹結構中,隻能通過CSS選擇器來擷取;

2.擷取不能被正常CSS選擇器擷取的資訊。

3.使用單冒号:

css僞類與僞元素差別

僞元素

僞元素,是在 DOM 樹中建立了一些抽象元素,這些抽象元素是不存在于文檔流 中的。

僞元素是對元素中的特定内容進行操作,它所操作的層次比僞類更深了一層,也是以它的動态性比僞類要低得多。實際上,設計僞元素的目的就是去選取諸如元素内容第一個字(母)、第一行,選取某些内容前面或後面這種普通的選擇器無法完成的工作。它控制的内容實際上和元素是相同的,但是它本身隻是基于元素的抽象,并不存在于文檔中,是以叫僞元素。

特點:

1.css3規定使用雙冒号(::)表示

2.由于相容性問題,是以現在大部分還是統一單冒号(:),因為除了IE8及其以下版本不支援雙冒号(::)外,其他都支援。

常見的幾種僞元素是: :after , :before 以及 :first-letter。

根本差別:是否建立了新元素