CSS:没有选择器没有正确应用

Dan*_*ous 4 html css dom css-selectors css3

我正在尝试将样式应用于除.reset-this之外的所有元素以及作为.reset-this的后代的元素.我的CSS无效.它不适用于任何元素.

*:not(.reset-this, .reset-this *) { //styles in here }
Run Code Online (Sandbox Code Playgroud)

要查看它如何工作的实例,请访问此小提琴:http://jsfiddle.net/sh39L882/1/

log*_*yth 7

在CSS 3中,更具体地说是选择器级别3:

否定伪类,不是(X),是一个函数符号,它将一个简单的选择器(不包括否定伪类本身)作为参数.

这里的关键是simple selector.:not只能访问简单的选择器.classsName,而不是a ,或者.className .child.

但请注意,这已在选择器级别4中更新:

否定伪类:not(),是一个以选择器列表作为参数的函数伪类.

需要注意的变化simple selectorselector list.这意味着您尝试做的事情是可能的,但仅限于实施新规范的浏览器.

您可以随时广泛应用样式,然后还原它们:

* {
  color: red
}

.reset-this, .reset-this * {
  color: black;
}
Run Code Online (Sandbox Code Playgroud)

但这非常糟糕,粗暴丑陋.正如您所评论的那样,设计类结构以避免这种情况会好得多.