偽類和偽元素的區別

2022-08-05 12:30:15 字數 1386 閱讀 3498

在css2中是這樣定義二者的:

css 偽類用於向某些選擇器新增特殊的效果。css 偽元素用於將特殊的效果新增到某些選擇器。

偽類存在的意義是為了通過選擇器找到那些不存在dom樹中的資訊以及不能被常規css選擇器獲取到的資訊。

第一點講的是獲取不存在與dom樹中的資訊。比如標籤的:link、visited等,這些資訊不存在與dom樹結構中,只能通過css選擇器來獲取;

第二點講的是獲取不能被常規css選擇器獲取的資訊。比如偽類:target,它的作用是匹配文件(頁面)的uri中某個標誌符的目標元素。

target:url 帶有後面跟有錨名稱 #,指向文件內某個具體的元素。這個被鏈結的元素就是目標元素(target element)。

:target 選擇器可用於選取當前活動的目標元素。

li:first-child類似於

li.first-child 一樣

這個時候,被修飾的元素依然處於文件樹中。

ul:first-letter類似於

ul:first-letter被修飾的時候,元素並不處於文件樹中。

因此,偽類與偽元素的區別在於:有沒有建立乙個文件樹之外的元素。

:first-child css偽類代表了一組兄弟元素中的第乙個元素。在level3實現中,被匹配的元素需要具有乙個父級元素,而在level4實現中則不需要

:first-child 匹配的是某父元素的第乙個子元素,可以說是結構上的第乙個子元素。

p:first-child,常見的錯誤理解是這個選擇器是選擇p的第乙個元素。

偽類的實質就是把某種幻想類關聯到某種偽類相關的元素中。

:first-of-type 匹配的是該型別的第乙個,型別是指什麼呢,就是冒號前面匹配到的東西,比如 p:first-of-type,就是指所有p元素中的第乙個。這裡不再限制是第乙個子元素了,只要是該型別元素的第乙個就行了,當然這些元素的範圍都是屬於同一級的,也就是同輩的。同樣型別的選擇器 :last-child 和 :last-of-type、:nth-child(n) 和 :nth-of-type(n) 也可以這樣去理解。

偽元素包括:first-letter, :first-line, :before ,:after等

所有的偽元素都要寫在偽元素選擇器的最後面,如果這樣寫就會出錯,

p:first-letter em
這是不允許的。

偽類和偽元素區別

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

偽類和偽元素的區別

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

偽類和偽元素的區別

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