一次弄懂CSS的偽類和偽元素

九九_歐發表於2020-04-06

前言

偽類與偽元素的問題總是容易弄混淆,本文在此進行總結,希望對你有幫助

偽類和偽元素的概念

A pseudo-class is a selector that selects elements that are in a specific state, e.g. they are the first element of their type, or they are being hovered over by the mouse pointer. They tend to act as if you had applied a class to some part of your document, often helping you cut down on excess classes in your markup, and giving you more flexible, maintainable code.

偽類是一種選擇處於特定狀態的選擇器,其作用就是在文件的某部分新增了一個類,為我們提供更靈活、可維護的程式碼。

Pseudo-elements behave in a similar way, however they act as if you had added a whole new HTML element into the markup, rather than applying a class to existing elements.

偽元素與偽類類似,區別在於偽元素就像新增了一個DOM節點到DOM樹中,而不是將類新增到現有元素。

偽類的分類

一次弄懂CSS的偽類和偽元素

偽元素的分類

一次弄懂CSS的偽類和偽元素

偽類與偽元素的寫法

Pseudo-classes are keywords that start with a colon:
Pseudo-elements start with a double colon ::

CSS3明確規定了,偽類用一個冒號(:)來表示,而偽元素則用雙冒號(::)來表示

偽類與偽元素的異同

相同點

  • 偽類與偽元素都用於向選擇器加特殊效果的。
  • 偽類和偽元素都用於表示文件樹以外的"元素"。

不同點

  • 可以同時使用多個偽類,而只能同時使用一個偽元素。
  • 偽元素建立了DOM樹之外的元素,而偽類沒有。
  • 偽類能選擇具體的文件樹元素。但偽元素選擇的不是具體的文件樹元素,更多的是一個獨立於文件樹的“抽象元素”。

參考

官方文件解釋

相關文章