【发布时间】:2011-02-14 14:52:36
【问题描述】:
如何在元素列表中选择某个元素?我有以下内容:
<div class="myclass">my text1</div>
<!-- some other code follows -->
<div>
<p>stuff</p>
</div>
<div>
<p>more stuff</p>
</div>
<p>
<span>Hello World</span>
</p>
<div class="myclass">my text2</div>
<!-- some other code follows -->
<div>
<p>stuff</p>
</div>
<p>
<span>Hello World</span>
</p>
<input type=""/>
<div class="myclass">my text3</div>
<!-- some other code follows -->
<div>
<p>stuff</p>
</div>
<footer>The end</footer>
显然,我有适用于所有人的 CSS 类 div.myclass {doing things},但我也希望能够像这样选择 .myclass 类的第一个、第二个或第三个 div,无论它们在哪里在标记中:
div.myclass:first {color:#000;}
div.myclass:second {color:#FFF;}
div.myclass:third {color:#006;}
几乎像 jQuery 索引选择 .eq( index ),这是我目前使用的,但我需要一个无脚本替代方案。
具体来说,我正在寻找伪选择器,而不是添加另一个类或使用 ID 来使事情正常工作。
【问题讨论】:
-
CSS 的 nth-child 怎么样,你试过吗....? 注意:这仅适用于现代浏览器
-
那个注释似乎是“No IE”的同义词。
-
@extraneon:是的,你没看错:)
-
这行不通,因为没有统一的父容器,这就是为什么我想根据类名的出现来选择。我必须查看每一个实例并找出父标签、id 或类才能选择孩子。这样做不会给我带来统一性并且难以阅读,并且如果父对象/属性发生变化也需要更新。
-
nth-child 现在受 IE 9+ 支持。
标签: css css-selectors pseudo-class