問題描述
在 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 輔助翻譯的英文資料結果。如果您對結果不滿意,可以加入我們改善翻譯效果:薇曉朵技術論壇。