【发布时间】:2012-06-12 09:12:12
【问题描述】:
使用 CSS,有没有办法选择与某个选择器匹配的元素最近的后代?
<div class="foo"> <!-- if we're inside this -->
<div>
<br />
<div class="bar"> <!-- match this -->
<div class="bar"> <!-- but not this -->
<div class="bar"> <!-- or this -->
</div>
</div>
</div>
<div class="bar"> <!-- I don't really care whether we match this -->
</div>
</div>
</div>
也就是说,会选择任何.foo 中的第一个.bar(无论中间有多少子元素或兄弟元素),但不会选择第二个或第三个.bar。
【问题讨论】:
-
如果您有第二个
.bar是您要选择的那个的兄弟,您是否也希望它被选中? -
最好不要,但这也是可以接受的。
-
这是我唯一能想到的:jsfiddle.net/thirtydot/gqJdP。有点hacky。
-
@JW 我认为您需要使用更强大的测试用例来编辑您的问题,并明确指出哪些项目应该匹配和不应该匹配。
-
@thirtydot 不错!我是按照这些思路思考的,但不能完全正确哈哈。您应该将其发布为答案,我肯定会投赞成票!
标签: css css-selectors