2014-09-23 44 views
0

为什么我不能做div:not(.wrapper2 .exception)? IE浏览器。除.wrapper2 .exception以外的所有div。无法执行`:not(.foo .bar)`

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; 
} 
+0

不清楚你在问什么。除了'.wrapper2 .exception',或'.wrapper2'和'.exception'之外,你想要的是吗? – Scimonster 2014-09-23 12:13:46

+0

嗨!所有div除'.wrapper2 .exception'是的。谢谢。更新的问题。 – 2014-09-23 12:15:34

+1

这解释了原因:http://stackoverflow.com/questions/7403129/combining-not-selectors-in-css/7403148#7403148 – 2014-09-23 12:20:03

回答

3

不能合并not()选择这样的,在同一时间只有一个选择可以去

选择除.exception之外的所有div:

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

你怎么知道OP不打算只适用于最后'div',它是'.wrapper2 .exception'。 – Scimonster 2014-09-23 12:13:03

+0

你说得对,我误解了这个问题。更新我的答案 – 2014-09-23 12:16:01

+0

http://jsfiddle.net/4swjmhtr/2/现在它只针对第一个分区 – fcalderan 2014-09-23 12:18:03

3

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

div > div { 
 
    background: blue; 
 
    color: white; 
 
} 
 
div.wrapper2 > div.exception { 
 
    background: none; 
 
    color: inherit; 
 
}
<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>

相关问题