问题描述

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

input {
 ... 
 ...
}

但是对于一些输入,我需要使它失效。我想通过将”reset” 类添加到输入标签,例如

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

然后从 CSS 中跳过此标签。

我该怎么办?

我可以看到的唯一方法是将一些类添加到输入标签中,并重写 CSS,如下所示:

input.mod {
 ...
 ...
}

最佳解决方案

在 CSS3 中,您可以使用:not()筛选器,但并不是所有的浏览器都完全支持 CSS3,所以请确定你知道你在做什么。

例:

<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: greeen; }
input.avoidme { background-color: white; }

次佳解决方案

您也可以通过’reverting’ 在 CSS 中重置类的更改。

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

第三种解决方案

CSS3 有:not(),但它并没有在所有浏览器中实现。然而,它在 IE9 平台预览中实现。

input:not(.reset) { }

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

在此期间,您必须坚持使用 old-fashioned 方法。

第四种方案

有趣的只是尝试使用 JQuery 选择 DOM 元素,它的工作原理! 🙂

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

此页面有 168 个 div,没有类’comment-copy’

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

参考文献

注:本文内容整合自 Google/Baidu/Bing 辅助翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:薇晓朵技术论坛