首页 > 解决方案 > 如何排除css中的特定值

问题描述

我想排除所有没有“lang”属性设置为“en”的(html)元素。
我知道有 :not (伪元素),
但如果我设置
body[lang=en] span:not([lang=en]) {display: none;}
我得到的结果是使所有没有“lang = en”的跨度元素(无论它们是否有 lang 属性)都不可见,因此不仅<span lang="de">,还有 <span class="myclass">。
我可能只排除具有 lang属性的元素- 与“en”不同?

标签: css

解决方案


来自评论

span[lang]:not([lang="en"]){display:none;}看起来像你需要的。它过滤每个具有 lang 属性的跨度,然后排除具有等于 en 值的 lang 属性的跨度。

span[lang]:not([lang="en"]) {
  display: none;
}
<span lang="de">Deutch</span><br>
<span class="myclass">myclass 'n no lang</span><br>
<span lang="en">English</span>

这适用于 span ,[lang]:not([lang="en"])如果选择器规格足够高,则适用于任何元素。小心,如果 body 有除 en 之外的另一种语言,则不会显示任何内容。


推荐阅读