无法做`:不(.foo .bar)`

时间:2014-09-23 12:10:36

标签: css css-selectors

为什么我不能div:not(.wrapper2 .exception)? IE浏览器。除.wrapper2 .exception以外的所有div。

http://jsfiddle.net/frank_o/4swjmhtr/

HTML:

<div class="wrapper1">
    <div>
        <p>Hi</p>
    </div>
    <div class="exception">
        <p>Hi</p>
    </div>
</div>
<div class="wrapper2">
    <div>
        <p>Hi</p>
    </div>
    <div class="exception">
        <p>Hi</p>
    </div>
</div>

CSS:

div:not(.wrapper2 .exception) {
    background: blue;
    color: white;
}

2 个答案:

答案 0 :(得分:3)

您无法合并not()这样的选择器,一次只能选择一个选择器。

选择.exception.wrapper2以外的所有div:

div:not(.wrapper2) div:not(.exception)

答案 1 :(得分:3)

如果你的目标是除了最后一个孩子以外的所有孩子,那么这就是你需要的。

&#13;
&#13;
div > div {
    background: blue;
    color: white;
}
div.wrapper2 > div.exception {
    background: none;
    color: inherit;
}
&#13;
<div class="wrapper1">
    <div>
        <p>Hi</p>
    </div>
    <div class="exception">
        <p>Hi</p>
    </div>
</div>
<div class="wrapper2">
    <div>
        <p>Hi</p>
    </div>
    <div class="exception">
        <p>Hi - not this one!</p>
    </div>
</div>
&#13;
&#13;
&#13;