是否可以在:not selector中包含嵌套值?例如:
:not(div > div)
每当我尝试它,它似乎不起作用.
也许你需要以另一种方式使用它我还没弄明白?
到目前为止,在我看到的所有示例中,您只能在此选择器中使用一个值.
解决方法
:not()一次只接受一个简单的选择器;这在
Selectors 3 spec中提到:
The negation pseudo-class,
:not(X)
,is a functional notation taking a 07001 (excluding the negation pseudo-class itself) as an argument. It represents an element that is not represented by its argument.
您的示例中的简单选择器将是您拥有的两个div标记.其他简单的选择器包括类选择器,ID选择器,属性选择器和伪类.它不接受多个简单的选择器,也不接受像>这样的组合器.或空间.
根据您尝试精确选择的元素,可能无法排除div> DIV:
>如果您只想选择div的子元素,它们本身不是div,请使用以下代码:
div > :not(div)
>如果您只想选择父元素不是div的div元素,请改用:
:not(div) > div
如果你想单独使用这个否定,选择所有其他元素,那么就没有办法只使用选择器.
我能想到的CSS中唯一可行的解决方法是在不使用:not()表达式的情况下将样式应用于所需的元素,然后为div>撤消它们. DIV.这适用于您尝试定位的任何元素集;缺点是并非所有属性都可以轻松重置.
或者,如果您正在使用jQuery,它支持:not(div> div)unlike the CSS version,您可以将选择器放在脚本中,例如,让jQuery将类名应用于这些元素,然后在您的目标中定位该类CSS.