Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Css 为什么:not()选择器不能与*选择器一起工作?_Css_Sass_Css Selectors - Fatal编程技术网

Css 为什么:not()选择器不能与*选择器一起工作?

Css 为什么:not()选择器不能与*选择器一起工作?,css,sass,css-selectors,Css,Sass,Css Selectors,我正在尝试选择所有元素,然后选择带有btn类的元素,除了带有navbar、footer或移动菜单类的元素之外 我有以下代码: *:not(.navbar):not(.footer):not(.mobile-menu) { .btn { font-size: 20px; padding: .8rem 2rem; } } 但它不起作用 有人能给我解释一下为什么吗 编辑:我正在使用sass给定: <body> <div class="navbar"&

我正在尝试选择所有元素,然后选择带有
btn
类的元素,除了带有
navbar
footer
移动菜单
类的元素之外

我有以下代码:

*:not(.navbar):not(.footer):not(.mobile-menu) {
  .btn {
    font-size: 20px;
    padding: .8rem 2rem;
  }
}
但它不起作用

有人能给我解释一下为什么吗

编辑:我正在使用sass

给定:

<body>
    <div class="navbar">
        <div class="btn">
        </div>
    </div>
</body>

*:not(.navbar):not(.footer):not(.mobile menu)
匹配
,然后
.btn
匹配


*:not(.navbar):not(.footer):not(.mobile menu)
不匹配并不重要,因为
仍然是

的后代,您不能在CSS中嵌套规则(除非您正在使用scss?如果是,请在您的问题中注意这一点)。将您的规则更改为
*:not(.navbar):not(.footer):not(.mobile menu)。btn
应该有效这里是一个简化的示例Yep抱歉@elveti,我正在使用SASSE
html
元素将由
*:not(.navbar):not(.footer):not(.mobile menu)
选择,因此您将选择所有btn。这个答案很好地解释了一切: