CSS选择所有内容,但忽略特定的父代及其所有子代

时间:2019-01-01 05:45:16

标签: css css-selectors

我需要这样的东西:

html.select_everything :not(#ignore-me):not(#ignore-me *)

以上操作无效,因为我不能在同一#ignore-me中同时使用*:not。是否有简单的CSS解决方案?

2 个答案:

答案 0 :(得分:1)

不是真的。

一种可靠可行的方法是覆盖样式:

.select_everything, .select_everything * {
   color:red; border:solid 1px silver;padding:2px;
}

.select_everything #ignore-me, .select_everything #ignore-me * {
  color:black;border:none;
}
<div class="select_everything">
  top level <div>under top level</div>
  <div id="ignore-me">not this <div>or this</div></div>
</div>

不支持您尝试执行的操作。 MDN - :not()表示仅在Safari中支持在,中使用:not

  

列出多个选择器的功能是实验性的,尚未得到广泛支持。

此外,:not不适用于a *之类的嵌套选择器,请参见nesting inside css :not() selectors

答案 1 :(得分:0)

希望这可能对您有帮助

 .select_everything :not(#ignore-me,#ignore-me *) {
           //your css here
        }