偽元素和偽類的區別總結

2021-09-23 18:39:57 字數 1711 閱讀 7156

其中偽類和偽元素的根本區別在於:它們是否創造了新的元素。

偽元素/偽物件:不存在在dom文件中,是虛擬的元素,是建立新元素。代表某個元素的子元素,這個子元素雖然在邏輯上存在,但卻並不實際存在於文件樹中。

偽元素選擇符

偽類:存在dom文件中,邏輯上存在但在文件樹中卻無須標識的「幽靈」分類。

偽類選擇符

再看看w3c中對於二者應用的描述:

偽類:用於向某些選擇器新增特殊的效果

偽元素:用於將特殊的效果新增到某些選擇器

其實根本意思就是就是對那些不能通過class、id等選擇元素的補充

舉個栗子:

如果我們想要第乙個p標籤字型顏色變紅怎麼做呢 使用偽類就會很簡單:

但是如果不用偽類我們怎麼做呢? 這時我們就需要為第乙個p標籤新增乙個類class

可以實現同樣的效果,但是需要多寫乙個類

如果使用偽元素該如何實現上述操作呢?

如果不用偽元素我們怎麼做呢?

可以看出二者區別了,

偽類的效果可以通過新增實際的類來實現

偽元素的效果可以通過新增實際的元素來實現

所以它們的本質區別就是是否抽象創造了新元素

注意:偽類只能使用「:」

而偽元素既可以使用「:」,也可以使用「::」

因為偽類是類似於新增類所以可以是多個,而偽元素在乙個選擇器中只能出現一次,並且只能出現在末尾

相關問題

:after/::after和:before/::before的異同

相同點都可以用來表示偽類物件,用來設定物件前的內容

:before和::before寫法是等效的; :after和::after寫法是等效的

不同點:before/:after是css2的寫法,::before/::after是css3的寫法

:before/:after 的相容性要比::before/::after好 ,

不過在h5開發中建議使用::before/::after比較好

注意:偽物件要配合content屬性一起使用

偽物件不會出現在dom中,所以不能通過js來操作,僅僅是在 css 渲染層加入

偽物件的特效通常要使用:hover偽類樣式來啟用

eg:當滑鼠移在span上時,span前插入」duang」

偽類和偽元素區別

偽類是向某些選擇器新增特殊的效果,可以通過新增乙個類來達到,用乙個冒號來表示。pseudo classes 如 first child,link visiter hover active focus lang 偽類類似於class,表示一些元素的狀態,但無需標識的分類。偽元素是將特殊的效果新增到某些...

偽類和偽元素的區別

個人的關注點可能主要集中在js方向上,但是本著css也不能丟掉的原則,所以上網查了些css方面的困惑點,這一篇的主題是 偽類和偽元素。偽類和偽元素的根本區別在於 它們是否創造了新的元素 抽象 從我們模仿其意義的角度來看,如果需要新增新元素加以標識的,就是偽元素,反之,如果只需要在既有元素上新增類別的...

偽類和偽元素的區別

學習這麼長時間對於一些基本點還是不太理解,所以在這裡進行了區分 第一種理解偽類用於向某些選擇器新增特殊的效果。偽元素用於將特殊的效果新增到某些選擇器。第二種理解 偽類的效果可以通過新增乙個實際的類來達到,而偽元素的效果則需要通過新增乙個實際的元素才能達到,這也是為什麼他們乙個稱為偽類,乙個稱為偽元素...