CSS在选择的类之后选择元素

时间:2011-12-07 12:34:11

标签: css css-selectors

我正在修改JQuery UI Accordion Menu,它目前的结构如下:

<h3>Title</h3>
<div>Children</div>
<h3 class="no-children">Title</h3>
<div>Children</div>
<h3>Title</h3>
<div>Children</div> ...

正如你所看到的,中间标题没有子节点,所以我想在CSS中做的就是选择在.no-children类之后发生的div并隐藏它。这些都没有嵌套,所以我不能这么简单。

我知道我可以display:none但我似乎无法选择正确的元素。

有办法做到这一点吗?

3 个答案:

答案 0 :(得分:4)

.nochildren+div{
  /* Style goes here */
}

这将选择一个DIV,该DIV前面紧跟一个具有.nochildren类的元素。这只有在两个元素都处于同一级别时才有效,许多旧版浏览器都会遇到问题。

http://www.quirksmode.org/css/contents.html

答案 1 :(得分:1)

如果您正在使用jQuery,可以通过一种简单的方法来执行此操作 Here

答案 2 :(得分:1)

您可以使用

$('.no-children').next().hide();

.nextUntil();

http://jsfiddle.net/lollero/DqpPd/1/


CSS方式

.no-children + div { display: none; }

http://jsfiddle.net/lollero/DqpPd/(ie7 +)