更新:这可能是不可能的.我还在寻找解决方案.
我需要创建一个CSS选择器来使用*选择所有页面元素,这将排除.exception元素及其所有后代(!).此.exception元素及其后代需要保留其初始样式,而*样式应该应用于所有其他页面元素.
重要提示:如果首先将任何样式应用于.exception及其后代,然后我需要手动将其覆盖为其初始值,则解决方案并不好!我不想将任何样式应用于.exception和/或它的后代AT ALL!
期望的结果
请记住,这只是一个微不足道的例子.我需要应用解决方案的页面包含更多元素,因此我需要一个通用的解决方案来过滤元素.那里不可能手动选择和覆盖元素.
http://jsfiddle.net/zV5gf/2/(初始状态,无解)
解决方案:不是选择器 – 不完美
这个解决方案不够好,因为它会排除li.exception,但它不会排除它的后代. li.exception后代的初始样式将丢失.
*:not(.exception){
background-color:orange !important;
}
div.exception及其后代的逻辑解决方案不起作用(浏览器不支持):
*:not(.exception *){
background-color:orange !important;
}
最佳答案
把背景:继承给它的孩子怎么样?
原文链接:https://www.f2er.com/css/427188.html*{
background-color:white
}
*:not(.exception){
background-color:red
}
.exception *{
background:inherit;
}