看到這幾個詞,有點傻傻分不清,故總結一下。spa
那麼什麼是僞類呢?之因此說它是「僞」的,不是爲了趕時髦,其實能夠理解爲,它不是真正的一類對象,而是一類對象的某種狀態。對象
好比一類連接<a>的hover狀態,就是個「僞」的類。文檔
而僞對象呢,能夠理解爲自己不是單獨的全新的對象,而是將已有的某些對象中劃分出來一些,因此是「僞」對象。it
僞類:class
:link :hover :active :visited :focus :first-child :first :left :right :lang總結
僞元素:樣式
:first-letter :first-line :before :after僞元素
CSS 引入僞類和僞元素的概念是爲了實現基於文檔樹以外的信息的格式化兼容
這麼說很抽象,其實就是爲了描述一些現有CSS沒法描述的東西。vi
一個僞類 first-child 舉例,這個容易混淆:
<ul>
<li></li>
<li></li>
</ul>
若是我要描述 ul 的第一個元素,我無須嵌套新的元素,我只須給第一個已經存在的 li 添加一個類名就能夠了:
<ul>
<li class="first-child"></li>
<li></li>
</ul>
最爲混淆的,多是大部分人都將 :before 和 :after 這樣的僞元素
CSS Selector Level 3 爲了區分這二者的混淆,而特地用冒號加以區分:
僞類用一個冒號表示 :first-child
僞元素則使用兩個冒號表示 ::first-line
由於低版本IE對雙冒號的兼容問題,幾乎全部的CSSer在寫樣式的時候都不約而同的使用了單冒號。
歸根結底,會用就行,畢竟標準還不完善,並且看了不少資料也是雲裏霧裏,不知因此然就作好知其然吧。