2017-03-10 71 views
0

让我们假设我有以下HTML结构:目标儿童多个类的一个CSS选择器规则

<div> 
     <div class="class1"> 
      <p class="subclass">whatever</p> 
     </div> 
     <div class="class2"> 
      <p class="subclass">whatever</p> 
     </div> 
     <div class="class3"> 
      <p class="subclass">whatever</p> 
     </div> 
</div> 

是否有可能有一个CSS选择器规则的目标下,祖先与类名subclass元素与类名class1class2

回答

2

您可以使用属性选择与:not()选择任何与.class*开始,排除.class3

[class^="class"]:not(.class3) .subclass { 
 
    color: red; 
 
}
<div> 
 
     <div class="class1"> 
 
      <p class="subclass">whatever</p> 
 
     </div> 
 
     <div class="class2"> 
 
      <p class="subclass">whatever</p> 
 
     </div> 
 
     <div class="class3"> 
 
      <p class="subclass">whatever</p> 
 
     </div> 
 
</div>

你总是可以选择结合

.class1 .subclass, .class2 .subclass { 
 
    color: red; 
 
}
<div> 
 
     <div class="class1"> 
 
      <p class="subclass">whatever</p> 
 
     </div> 
 
     <div class="class2"> 
 
      <p class="subclass">whatever</p> 
 
     </div> 
 
     <div class="class3"> 
 
      <p class="subclass">whatever</p> 
 
     </div> 
 
</div>

+0

对于一些项目,我会选择去2,有许多项目相同的规则,我将与选项1 选项2是更具可读性和可修改更低的复杂去。 谢谢您的明确的答案。 – MJoraid