相同元素或后代的 CSS 组合器

问题描述 投票:0回答:2

是否有一个CSS选择器组合器用于选择同一元素或任何后代中的两个类。例如:

<div class="theme-classic btn"></div>

或:

<div class="theme-classic">
  <div>
    <div class="btn"></div>
  </div>
</div>

如果在我的CSS文件中我写:

.theme-classic.btn
我不选择后代。

如果在我的CSS文件中我写:

.theme-classic .btn
我不会选择类位于同一元素上的第一种情况。

当然,我可以这样做:

.theme-classic.btn,
.theme-classic .btn { ... }

但我找不到兼具这两种功能的组合器。

html css css-selectors
2个回答
1
投票

CSS 中不存在这种情况。

您需要像您提到的那样分别选择它们:

.theme-classic.btn,
.theme-classic .btn { 
    ... 
}

0
投票

CSS 嵌套可以帮助您简化选择器并避免重复

.theme-classic

.theme-classic {
   :is(& .btn,&.btn) {
     color: red;
   }
}
<div class="theme-classic btn">Select</div>
<div class="theme-classic"> Don't select</div>
<div class="btn"> Don't select</div>
<div class="theme-classic">
  <div>
    <div class="btn">Select</div>
    <div >Don't Select</div>
  </div>
</div>

© www.soinside.com 2019 - 2024. All rights reserved.