首页 > 解决方案 > :not CSS 选择器不适用于跨度内的跨度类

问题描述

我在这里遇到了一个非常直接的问题。:not 选择器不适用于归因于另一个跨度内的跨度的类(无空格)。但是,当 spaceless 类位于其父 div 中时,:not 属性有效。

这是我的代码:

HTML:

<span class = "darken">
    <span class = "spaceless">
        Test1
    </span>
    Test2
</span>

CSS:

.darken {
  background: #AAA;
}
.darken:not(.spaceless) {
    color: #FFF;
}

输出:Test1 和 Test2 都有颜色:#FFF,并且都有背景:#AAA。为什么 Test1 有颜色:#FFF 考虑到它的无空间类(:not 选择器应该排除)?这对我来说没有意义。即使在 Fiddle 中,此代码也不起作用。有谁知道为什么以及如何解决它?我将不胜感激任何帮助!

标签: htmlcsscss-selectors

解决方案


它们都有颜色#fff,这可能是由于您的其他代码没有,但这里也是一个参考

选择:not器无法按您期望的方式工作。什么

.darken:not(.spaceless)

意味着它是否匹配

<div class="darken">

它不匹配

<div class="darken spaceless">

所以预期的行为是它们都会有颜色#fff,因为:not()选择器的一部分根本没有做任何事情,内部元素从元素继承.darken颜色


推荐阅读