CSS没有兄弟选择器

时间:2011-10-23 14:42:00

标签: html css css-selectors

考虑以下html:

<div>
    <div class="iwant" />
    <div class="idontwant" />
</div>
 <div>
    <div class="iwant" />
</div>

我对选择器(用于抓取内容以便我无法修改html)感兴趣,该选择器会选择所有不与类iwant同胞的idontwant

3 个答案:

答案 0 :(得分:45)

没有兄弟选择器可以按类匹配(或不匹配)元素。

我能想到的最接近的选择器是

.iwant:only-child

但是这个选择器意味着除了div class="iwant"之外不能有任何其他元素作为父div的子元素,无论类型或类如何。这可能会满足您的需求,具体取决于HTML的结构,所以值得一试。如果类名对你来说是一个问题,那么可能没有太多解决方案,因为CSS中没有:only-of-class伪类,它按类过滤并忽略其余的。

答案 1 :(得分:3)

没有负面兄弟的CSS选择器。使用兄弟选择器设置新样式,然后在.idontwant

重置样式
div.iwant {
    /*Set CSS here*/
    display: inline;
}
div.iwant ~ div.idontwant {
    /*Reset CSS*/
    display: block /* Default of DIV is block*/
}

答案 2 :(得分:2)

没有特定的兄弟项目,没有很好的方法来定位项目。但您可以使用.iwant:last-child来定位没有后续兄弟的项目。

示例:http://codepen.io/martinkrulltott/pen/YyGgde