首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >带有css的多子选择器

带有css的多子选择器
EN

Stack Overflow用户
提问于 2018-09-24 21:57:55
回答 2查看 995关注 0票数 2

检查下面的代码:

代码语言:javascript
复制
.aaa :not(.bbb) .ccc {
  font-size: 20px;
  color: #FF0000;
}
代码语言:javascript
复制
<div class="aaa">
    <div>
        <div>
            <div class="bbb">
                <div>
                    <div>
                        <div class="ccc">AQUI</div>
                    </div>
                </div>
            </div>
        </div>
    </div>
</div>

我希望匹配.aaa的子元素但不是.bbb的子元素的所有.ccc元素。这意味着上面的代码不应该让AQUI单词变成红色,但无论如何它都会变成红色。我做错了什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-09-24 22:04:03

not(.bbb)将匹配任何没有.bbb类的div,在.aaa.ccc之间有很多这样的类,这就是为什么文本是红色的。要做你想做的事情,你需要考虑两个选择器

代码语言:javascript
复制
.aaa .ccc {
  font-size: 20px;
  color: #FF0000;
}
/*we reset the style if children of .bbb*/
.bbb .ccc {
  color: initial;
  font-size:initial;
}
代码语言:javascript
复制
<div class="aaa">

  <div>

    <div>

      <div class="bbb">

        <div>

          <div>

            <div class="ccc">AQUI</div>

          </div>

        </div>
      </div>

    </div>

  </div>

</div>

票数 2
EN

Stack Overflow用户

发布于 2018-09-24 22:02:49

实际上有一些元素不是.bbb的-在本例中是.bbb之前和之后的两个div。为了让它起作用,你需要更具体。您可以添加另一个类(本例中为zzz),如果该类未与.bbb组合,则将应用该规则。

代码语言:javascript
复制
.aaa .zzz:not(.bbb) .ccc {
  font-size: 20px;
  color: #FF0000;
}
代码语言:javascript
复制
<div class="aaa">
  <div>
    <div>
      <div class="zzz bbb">
        <div>
          <div>
            <div class="ccc">AQUI</div>
          </div>
        </div>
      </div>
    </div>
  </div>
</div>

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52481037

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档