我正在尝试使用我使用的样式
input:not([type=checkbox]),
input:not([type=radio]){ ...
但显然这不起作用。我如何使用我为所有输入编写的样式,但只使用这两种?
答案 0 :(得分:46)
您需要使用单个组合选择器而不是两个选择器:
input:not([type=checkbox]):not([type=radio]) { ... }
这会选择没有属性input
并且没有属性type=checkbox
的任何type=radio
元素。问题中的代码(包含两个选择器)会选择所有不具有属性input
的{{1}}元素以及所有不具有属性type=checkbox
的{{1}}元素,所以它最终会选择所有input
元素。
通常的CSS注意事项适用。您可能希望使用Selectivzr之类的polyfill来覆盖旧版本的IE。
答案 1 :(得分:1)
除了这两种类型之外,你需要设置所有其他类型的样式,尽管可能很糟糕。
您可以尝试将类添加到您不想要样式的类中,然后在CSS中使用它:
input:not(.not){ /*Whatever styling you use*/ }
答案 2 :(得分:1)
如果你可以使用javascript,特别是jquery,那么你可以使用这个
$("input:not(:checkbox):not(:radio), select").addClass('myClass');
会将类myClass
添加到所有输入(并选择),但无线电和复选框
答案 3 :(得分:0)
如果要在Javascript文件中使用它,则可以改用它:
$("input").not(["type=checkbox"]).not("#id").each(function() {
例如,我在循环中使用它,不包括所有复选框和id = id的元素