Jen*_*ift 12 css css-selectors css3
是否可以在:not selector中包含嵌套值?例如:
:not(div > div)
Run Code Online (Sandbox Code Playgroud)
每当我尝试它,它似乎不起作用.也许你需要以另一种我没想过的方式使用它?到目前为止,在我看到的所有示例中,您只能在此选择器中使用一个值.
Bol*_*ock 16
:not()一次只接受一个简单的选择器; 这在选择器3规范中提到:
否定伪类
:not(X)是一个函数符号,它将一个简单的选择器(不包括否定伪类本身)作为参数.它表示一个未由其参数表示的元素.
示例中的简单选择器将是div您拥有的两个令牌.其他简单的选择器包括类选择器,ID选择器,属性选择器和伪类.它不接受多个简单的选择器,也不接受类似>或空间的组合器.
根据您尝试精确选择的元素,可能无法排除div > div:
如果你只需要选择是的子元素div,本身是没有div,用这个来代替:
div > :not(div)
Run Code Online (Sandbox Code Playgroud)如果您只想选择div父元素不是a的元素div,请改用:
:not(div) > div
Run Code Online (Sandbox Code Playgroud)如果你想单独使用这个否定,选择所有其他元素,那么就没有办法只使用选择器.
我能想到的CSS中唯一可行的解决方法是在没有:not()表达式的情况下将样式应用于所需的元素,然后撤消它们div > div.这适用于您尝试定位的任何元素集; 缺点是并非所有属性都可以轻松重置.
另外,如果你使用jQuery,它不支持:not(div > div) 不同的CSS版本,您可以将选择在脚本中和,例如,已经jQuery的应用类名的那些元素,然后针对你的CSS类.