2012-06-29 116 views
3

我無法弄清楚如何將奇/偶:nth-child()僞類適用於自定義列表:第n個孩子()奇/偶僞類與定義列表

<dl> 
    <dt>green foo</dt> 
    <dd>green bar</dd> 
    <dt>red foo</dt> 
    <dd>red bar</dd> 
    <dt>green foo</dt> 
    <dd>green bar</dd> 
</dl> 

<style> 
dl { color: blue } 
dd:nth-child(odd) { color:green } 
dd:nth-child(even) { color:red }​ 
</style> 

http://jsfiddle.net/8Ge5h/2/

新小提琴:

http://jsfiddle.net/8Ge5h/7/

用正確的:第n-的方式僞類。

dd:nth-of-type(even) {color: red;} 
dt:nth-of-type(even) {color: red;} 
dd:nth-of-type(odd) {color: green;} 
dt:nth-of-type(odd) {color: green;} 

+0

什麼是不工作?你所有的「dd」都是偶數,所以它們都是紅色的...... – sczizzo

+0

你想在這些項目之間「有所不同」是什麼? – BoltClock

+0

不同的顏色/背景。爲什麼他們都是?我希望每隔一天dd改變 – helgatheviking

回答

6

在HTML中,既dtdd是彼此的兄弟姐妹,同一父dl下。因此,如果您在單一dl之間交替使用dtdd,那麼您所有的dt元素將爲:nth-child(odd),而您的所有dd元素將爲:nth-child(even)

你可能尋找替代:nth-of-type(),這將幫助你檢查僅採用了dtdd類型,不像:nth-child()不關心它是什麼樣的元素,其相對於父唯一位置。

如果你想使每個奇數dd綠色和每個偶數dd紅:

dd:nth-of-type(odd) { color:green } 
dd:nth-of-type(even) { color:red }​ 

Updated fiddle

+0

:nth-​​type!而已。謝謝! – helgatheviking