2011-10-27 81 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 +)。