CSS:not()selector。如果父级不存在,请应用样式 [英] CSS :not() selector. Apply style if parent does not exist

查看:83
本文介绍了CSS:not()selector。如果父级不存在,请应用样式的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想根据其父类应用一个样式到div。我使用:not()选择器来选择其父项不是 .container1 的div,第二个div应该是红色的,但它不工作。



示例1



  .myDiv:not(.container1)> .myDiv {color:red;}  

 < div class =container1> < div class =myDiv> Div 1< / div>< / div>< div class =container2> < div class =myDiv> Div 2< / div>< / div>  

示例2



  .myDiv:not(.container1 .myDiv){color :red;}  

 < div class =container1 > < div class =myDiv> Div 1< / div>< / div>< div class =container2> < div class =myDiv> Div 2< / div>< / div>  

这是CSS甚至可能吗?或者是我的语法刚刚关闭?

解决方案

无法反向查找,请参阅此处:



  div:not(.container1)> .myDiv {color:red;}  

 < div class =container1> < div class =myDiv> Div 1< / div>< / div>< div class =container2> < div class =myDiv> Div 2< / div>< / div>  

b




理想情况下,您应该将这些父div归为同一类,以避免超级泛型 div selector:



  .container:not(.container1)> .myDiv {color:red;}  

 < div class =container container1> < div class =myDiv> Div 1< / div>< / div>< div class =container container2> < div class =myDiv> Div 2< / div>< / div>  

b

I am trying to apply a style to a div based on its parent class. I am using the :not() selector to select the div whose parent is not .container1, the second div should be red, but it's not working.

Example 1

.myDiv:not(.container1) > .myDiv {
  color: red;
}

<div class="container1">
  <div class="myDiv">Div 1</div>
</div>

<div class="container2">
  <div class="myDiv">Div 2</div>
</div>

Example 2

.myDiv:not(.container1 .myDiv) {
  color: red;
}

<div class="container1">
  <div class="myDiv">Div 1</div>
</div>

<div class="container2">
  <div class="myDiv">Div 2</div>
</div>

Is this even possible with CSS? Or is my syntax just off?

解决方案

You're selecting wrong elements. No reverse lookups possible, see here:

div:not(.container1) > .myDiv {
  color: red;
}

<div class="container1">
  <div class="myDiv">Div 1</div>
</div>

<div class="container2">
  <div class="myDiv">Div 2</div>
</div>


Ideally, you'd group those parent divs under the same class in order to avoid the super-generic div selector:

.container:not(.container1) > .myDiv {
  color: red;
}

<div class="container container1">
  <div class="myDiv">Div 1</div>
</div>

<div class="container container2">
  <div class="myDiv">Div 2</div>
</div>

这篇关于CSS:not()selector。如果父级不存在,请应用样式的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆