對於初學者來講,區別"nth-child"和"nth-of-type"是一個比較頭疼的問題,爲了更好幫助你們區別二者使用方法,特在此加以區分。html
<div class="post">
<p>我是文章的第一個段落</p>
<p>我是文章的第二個段落</p><!** ==我要變成第二個段落== **>
</div>
post
.post>p:nth-child(2){color:red;}
.post>p:nth-of-type(2){color:red;}
code
上面的代碼都把「post」中的第二段文字變成了大紅色,是否是表明這兩個選擇器就是同樣的呢?其實否則。「nth-child」僅從字面上來解釋,其實包含了兩層意思。首先是一個段落元素,並且這個段落是父元素「div」的第二個子元素;而「nth-of-type」從字面上解釋是「選擇父元素div的段落二」。
<h1>我是標題</h1>
<p>我是文章的第一個段落</p>
<p>我是文章的第二個段落</p><!** ==我要變成第二個段落== **>
htm
前面的樣式不變,但結構卻徹底不一樣了。「p:nth-child(2)」並無選擇段落二,而是選擇了段落一,從而沒有達到須要的效果。
.post>p:nth-child(2){color:red;}/*第一個段落變成紅色,不是咱們須要的效果*/
class
「nth-child(2)」選錯了段落,但「p:nth-of-type(2)」卻正常工做,選擇仍是段落二,實現了想要的效果。
.post>p:nth-of-type(2){color:red;}/*第二個段落變成紅色,是咱們須要的效果*/
方法