2011-10-27 86 views
1

我有一個或兩個div與頁/ foo類。我只需要選擇第二個,這意味着如果頁面上只有一個不選擇它。有沒有一個CSS選擇器?

我試過div.foo:not(:first)div.foo:nth-child(2),兩者似乎都不起作用。

任何想法?

+0

':first'是一個jQuery選擇器。它不存在於CSS中。 – BoltClock

回答

4

沒有一個:nth-of-class()選擇,但如果兩個div.foo元素共享相同的家長,您可以使用取決於第二div.foo第一還是沒有後緊跟的同胞選擇之一:

div.foo + div.foo /* Is immediately after */ 
div.foo ~ div.foo /* Is somewhere after among its siblings */ 

如果有可能超過兩個這樣的div S,您可能需要使用下列內容之一的任何後續元素撤消上述規則的樣式:

div.foo + div.foo ~ div.foo 
div.foo ~ div.foo ~ div.foo 

And don't worry about browser support, this works in IE7+.

+0

也只有在它們都包含在同一父項中時纔有效。 – Sivvy

+0

如果你的'div.foo'元素沒有共享同一個父元素,那麼你必須在你的第一個選擇器中使用jQuery,就像在'$('div.foo:not(:first)')'中一樣。 – BoltClock

0

這取決於幾件事情。 你在IE上測試嗎? 同一父代中的元素是?

如果元素不在同一父元素中,我不確定他們可以使用這些特定的選擇元素,並且據我記憶,他們目前不在IE中工作(不包括兄弟選擇器,而不是肯定關於IE9 +)。