是否有某种"不"的CSS选择器?
例如,当我在CSS中编写以下行时,带有类classname的标记内的所有输入字段都将具有红色背景.
.classname input {
background: red;
}
如何选择具有类classname的标签OUTSIDE的所有输入字段?
使用当前的浏览器CSS支持,你不能.
较新的浏览器现在支持它 - 有关更多信息,请参阅Sam的答案.
(有关CSS中的替代方案,请参阅其他答案.)
如果在JavaScript/jQuery中这样做是可以接受的,你可以这样做:
$j(':not(.classname)>input').css({background:'red'});
Mozilla支持否定伪类:
:not(.classname) input {background: red;}
另见:http://developer.mozilla.org/en/Mozilla_CSS_support_chart
请注意,否定伪类位于选择器级别3建议书中,适用于最新版本的Firefox,Chrome和Safari(至少).示例代码如下.
Negation pseudo class
你不是通过将'全局'背景设置为红色,然后使用类名来改变其他背景吗?
input { background: red; } .classname input { background: white; }
我会这样做的
input { /* styles outside of .classname */ } .classname input { /* styles inside of .classname, overriding above */ }