在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實現中則不需要p:first-child,常見的錯誤理解是這個選擇器是選擇p的第乙個元素。:first-child 匹配的是某父元素的第乙個子元素,可以說是結構上的第乙個子元素。
偽類的實質就是把某種幻想類關聯到某種偽類相關的元素中。
: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方面的困惑點,這一篇的主題是 偽類和偽元素。偽類和偽元素的根本區別在於 它們是否創造了新的元素 抽象 從我們模仿其意義的角度來看,如果需要新增新元素加以標識的,就是偽元素,反之,如果只需要在既有元素上新增類別的...
偽類和偽元素的區別
學習這麼長時間對於一些基本點還是不太理解,所以在這裡進行了區分 第一種理解偽類用於向某些選擇器新增特殊的效果。偽元素用於將特殊的效果新增到某些選擇器。第二種理解 偽類的效果可以通過新增乙個實際的類來達到,而偽元素的效果則需要通過新增乙個實際的元素才能達到,這也是為什麼他們乙個稱為偽類,乙個稱為偽元素...