html - 将 CSS 选择器限制为最近的父级

标签 html css css-selectors

如果我有这个DOM结构

<div class="a b">
  <div class="c" id="c1">
    <div class="a">
      <div class="c" id="c2">
      </div>
    </div>
  </div>
</div>

我想创建一个像这样的选择器

.a.b.c { ...}

并且它只适用于 id=c1 而不是 id=c2,因为 c2 中的“a”元素也没有“b”。

但目前 c2 也在具有“a”和“b”的更高父级中,因此选择器适用。

请注意,“a”和“c”之间的链中可能有更多父项。 我可以在 Javascript/jquery 中执行此操作,但我想要一个纯 CSS 解决方案。

最佳答案

您可以使用子组合器选择器 >使用特定父元素定位子元素 - 请参阅下面的演示,其中 #c1 以红色和伪元素为目标。

现在您可以拥有选择器(查看伪如何仅适用于#c1),但父样式将被继承。所以你必须重新设置样式。 (color: initial 在下面的演示中)

.a.b .c {
  color: initial;
}
.a.b > .c {
  color: red;
}
.a.b > .c:before {
  content: '1. ';
}
<div class="a b">
  <div class="c" id="c1">one
    <div class="a">
      <div class="c" id="c2">two
      </div>
    </div>
  </div>
</div>

关于html - 将 CSS 选择器限制为最近的父级,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46112962/

相关文章:

JavaScript onblur 事件处理

html - div 中的图像在图像下方有额外的空间

javascript - 分页AJAX,需要一直包含js吗?

html - css继承子属性

html - 重叠的 HTML 格式化标签总是不好的做法吗?

javascript - img 高度与 img 宽度成比例,但 img 宽度占父级的百分比

属于嵌套在另一个元素类中的多个类的 div 元素的 CSS 样式规则

html - 在另一个类(class)内定位一个类(class)

CSS 下一个元素(无兄弟)选择器

html - Xslt jqueryui未使用的div