css3怎麼分清僞類和僞元素

僞類用於向某些選擇器添加特殊的效果。css

僞元素用於將特殊的效果添加到某些選擇器。css3

 

僞類有::first-child ,:link:,vistited,:hover,:active,:focus,:lang spa

僞元素有::first-line,:first-letter,:before,:after  code

 

使用僞類:blog

1 <style>
2 p>i:first-child {color: red}
3 </style>
4 <p>
5     <i>first</i>
6     <i>second</i>
7 </p>

若是咱們不使用僞類,而但願達到上述效果,能夠這樣作:element

不使用僞類:get

1 <style>
2 .first-child {color: red}
3 </style>
4 <p>
5     <i class="first-child">first</i>
6     <i>second</i>
7 </p>

即咱們給第一個子元素添加一個類,而後定義這個類的樣式。it

 

使用爲元素:class

<style>
p:first-letter {color: red}
</style>
<p>I am stephen lee.</p>

那麼若是咱們不使用僞元素,要達到上述效果,應該怎麼作呢?兼容性

不使用爲元素:

1 <style>
2 .first-letter {color: red}
3 </style>
4 <p><span class='first-letter'>I</span> am stephen lee.</p>

即咱們給第一個字母添加一個 span,而後給 span 增長樣式。二者的區別已經出來了。那就是:

僞類的效果能夠經過添加一個實際的類來達到,而僞元素的效果則須要經過添加一個實際的元素才能達到,這也是爲何他們一個稱爲僞類,一個稱爲僞元素的緣由。

 

僞元素和僞類之因此這麼容易混淆,是由於他們的效果相似並且寫法相仿,但實際上 css3 爲了區分二者,已經明確規定了僞類用一個冒號來表示,而僞元素則用兩個冒號來表示。

1 :Pseudo-classes         //僞類
2 ::Pseudo-elements       //僞元素

但由於兼容性的問題,因此如今大部分仍是統一的單冒號,可是拋開兼容性的問題,咱們在書寫時應該儘量養成好習慣,區分二者。

相關文章
相關標籤/搜索