2012-04-06 66 views
2

我發現jQuery:奇怪的選擇器和CSS3的第n個孩子(奇怪)的作品不同。 http://jsfiddle.net/TMDwT/5/jQuery:奇怪和:nth-​​child CSS3不同

在黃色它是CSS nth-child(奇數),如果你取消註釋JS和註釋背景:在CSS中黃色,你會發現它以另一種方式發現。

有人可以說我如何實現與jQuery相同的結果,但與CSS3?

謝謝!

+3

您的嵌套列表格式不正確。 'li'元素必須是'menu','ol'或'ul'元素的子元素。 – zzzzBov 2012-04-06 14:32:27

+0

赦免,修復。但問題依然存在。 http://jsfiddle.net/TMDwT/5/ – 2012-04-06 14:35:49

+0

如何在jQuery中使用nth-child(奇數)? – scottheckel 2012-04-06 14:37:35

回答

6

是,:odd:nth-child(odd)是不一樣的東西:

  • :odd匹配的奇數項匹配的元素內,即應用選擇到jQuery對象的內容,

  • :nth-child(odd)匹配其各自父母內的奇數項目

這是相同的差作爲:first:first-child,或:last:last-child之間。作爲zzzzBov和BoltClock理所當然地指出,在:odd選擇是從零開始的,但:nth-child()選擇是基於:

更新。這意味着,即使您將兩個選擇器應用於元素的完整子列表(從而消除了:odd:nth-child(odd)之間的差異),它們仍然不會匹配相同的元素。

+0

而「我可以在CSS3中做到這一點嗎?」的答案沒有。 – BoltClock 2012-04-06 14:39:15

+2

不要忘記提及':odd'使用基於0的索引,而':nnth-child'使用基於1的索引。這意味着跨單個列表他們仍然不會代表相同的選擇。 – zzzzBov 2012-04-06 14:39:21

+0

@zzzzBov,絕對的,但提問者明確提到':nth-​​child(odd)',所以它是基於一個在這種特殊情況下不是真正的問題:) – 2012-04-06 14:41:28