样式所有输入,但复选框和收音机

时间:2014-02-07 02:41:58

标签: css checkbox radio

我正在尝试使用我使用的样式

input:not([type=checkbox]),
input:not([type=radio]){ ...

但显然这不起作用。我如何使用我为所有输入编写的样式,但只使用这两种?

4 个答案:

答案 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添加到所有输入(并选择),但无线电和复选框

取自这个答案 https://stackoverflow.com/a/2893606/932473

答案 3 :(得分:0)

如果要在Javascript文件中使用它,则可以改用它:

$("input").not(["type=checkbox"]).not("#id").each(function() {

例如,我在循环中使用它,不包括所有复选框和id = id的元素