CSS :not() selector. 如果父项不存在则应用样式

标签 css css-selectors

我正在尝试将样式应用于基于其父类的 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>


理想情况下,您会将这些父 div 分组在同一类下,以避免使用超通用的 div 选择器:

.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. 如果父项不存在则应用样式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35509331/

相关文章:

jquery - 页面滚动时固定在 DIV 上的位置

CSS 选择器不适用于 IE7 和 IE8

html - CSS 的第一个后代

css - 是否有 CSS 父级选择器?

html - 通用兄弟组合器 (~),不更新 DOM 更改,按预期工作?

css - XPages - 样式化字段集/图例标签

css - 在 float 中居中对齐垂直和水平

javascript - 获取 img 元素的 exif 方向并相应地分配类

css - 我可以将:nth-​​child()或:nth-​​of-type()与任意选择器结合使用吗?

html - 设置宽度等于高度