CSS排除语法



我希望<div class="status-outer">中的所有锚链接都是白色的,除了<li>标记中的锚链接和<ul class="dropdown-menu">标记中的那些锚链接。

四处搜寻,我发现了以下内容。不幸的是,它不起作用。我的锚链接似乎没有一个是白色的。

.status-outer a:not(ul.dropdown-menu > li > a) {
    color: #fff;
    text-shadow: none;
}

有人能帮我找出问题吗?

请注意,我已经找到了其他关于排除语法的文章(这就是我编写上面代码的原因),但我找不到任何适合我需求的示例。

.status-outer a { color: #FFF; }
.status-outer .dropdown-menu li a { color: #000; }

否定伪类:not(X)是采用简单选择器的函数表示法

你需要做这样的事情:

.status-outer a { color: white; }
ul.dropdown-menu > li > a { color: inherit; }

不确定,颜色是否可能是inherit

将第二个类添加到那些不希望为白色的列表元素中,并使用CSS"color"规则覆盖前一个。

:not()伪元素只能采用简单选择器,基本上意味着单个事物,如body#id.class[attribute]。您不能在其中指定整个选择器。

您必须指定两个独立的选择器。默认情况下,一个将锚点设置为白色,另一个将其设置为继承其父元素的颜色(如果其父元素包含在列表中)。

.status-outer a {
    color: #fff;
    text-shadow: none;
}
.status-outer ul.dropdown-menu a {
    color: inherit;
}

你会遇到的唯一问题是text-shadow没有inherit值,这意味着一旦删除它,你就不能将它重新添加为其父值,你必须重新指定它。我不知道这在这里是否100%适用。

最新更新