有没有CSS不等于select器?

在CSS中有没有像!=(不等于)? 例如,我有以下代码:

input { ... ... } 

但是对于一些input,我需要将其作废。 我想通过添加类“重置”到input标签,例如

 <input class="reset" ... /> 

然后简单地从CSS中跳过这个标签。

我怎么能做到这一点?

我能看到的唯一方法是将一些类添加到input标记,并重写CSS,如下所示:

 input.mod { ... ... } 

在CSS3中,你可以使用:not()filter, 但是并不是所有的浏览器都完全支持CSS3,所以要确保你知道你现在正在做什么 ,现在所有的主stream浏览器都支持这个过滤器了是一个旧的答案…)。

例:

 <input type="text" value="will be matched" /> <input type="text" value="will not be matched" class="avoidme" /> <input type="text" value="will be matched" /> 

和CSS

 input:not(.avoidme) { background-color: green; } 

注意:这个解决方法不应该是必要的, 我将它留在这里的上下文。

如果您不想使用CSS3,则可以在所有元素上设置样式,然后使用类重置该样式。

 input { background-color: green; } input.avoidme { background-color: white; } 

您也可以通过仅在CSS中“恢复”重置类的更改来实现这一点。

 INPUT { padding: 0px; } INPUT.reset { padding: 4px; } 

CSS3有:not() ,但它尚未在所有浏览器中实现。 但是,它是在IE9平台预览版中实现的。

 input:not(.reset) { } 

http://www.w3.org/TR/css3-selectors/#negation

同时,你必须坚持老式的方法。

有趣的只是试图使用JQueryselectDOM元素,它的工作原理! 🙂

 $("input[class!='bad_class']"); 

这个页面有168个div没有class comment-copy

 $("div[class!='comment-copy']").length => 168 $("div[class!='.comment-copy']").length => 168 

你也可以通过定位像这样的属性来解决这个问题:

input:not([type=checkbox]){ width:100%; }

在这种情况下,所有不是“checkbox”types的input将具有100%的宽度。

而不是class =“reset”,你可以通过让class =“valid”来反转逻辑。你可以默认添加这个,并删除类来重置样式。

所以从你的例子和Tomas'

 input.valid { ... ... } 

 <input type="text" value="will be matched" class="valid"/> <input type="text" value="will not be matched" /> <input type="text" value="will be matched" class="valid"/>