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,我正在使用SASSEhtml
元素将由*:not(.navbar):not(.footer):not(.mobile menu)
选择,因此您将选择所有btn。这个答案很好地解释了一切: