像這種情況。題主一定是混淆了nth-child和nth-of-type的概念。雖然說這兩個都是CSS3中的偽類選擇器,但其作用近似卻又不完全一樣。
對於選擇器,在簡單白話文中,意味著選擇一個元素如果:
對於選擇器,意味著選擇一個元素如果:
這樣一說可能還是不好理解,來看一個小demo就能明白其中差異了:
然後分別使用nth-child和nth-of-type加以修飾
悲劇了,其渲染的結果不是第二個標籤文字變紅,而是第一個標籤,也就是父標籤的第二個子元素。效果如下圖:
的表現顯得很堅挺,其把希望渲染的第二個標籤染紅了。效果如下:
是不是能理解了呢
像這種情況。題主一定是混淆了nth-child和nth-of-type的概念。雖然說這兩個都是CSS3中的偽類選擇器,但其作用近似卻又不完全一樣。
對於選擇器,在簡單白話文中,意味著選擇一個元素如果:
這是個段落元素這是父標籤的第二個孩子元素對於選擇器,意味著選擇一個元素如果:
選擇父標籤的第二個段落子元素這樣一說可能還是不好理解,來看一個小demo就能明白其中差異了:
<section> <div>this is a div</div> <p>i"m the first p</p> <p>i"m the second p</p></section>然後分別使用nth-child和nth-of-type加以修飾
p:nth-child(2) { color: red; }p:nth-of-type(2) { color: red; }悲劇了,其渲染的結果不是第二個標籤文字變紅,而是第一個標籤,也就是父標籤的第二個子元素。效果如下圖:
的表現顯得很堅挺,其把希望渲染的第二個標籤染紅了。效果如下:
是不是能理解了呢