【发布时间】:2014-03-04 07:21:12
【问题描述】:
我正在尝试使用我使用的样式
input:not([type=checkbox]),
input:not([type=radio]){ ...
但显然这行不通。除了这两个,我如何使用我为所有输入编写的样式?
【问题讨论】:
我正在尝试使用我使用的样式
input:not([type=checkbox]),
input:not([type=radio]){ ...
但显然这行不通。除了这两个,我如何使用我为所有输入编写的样式?
【问题讨论】:
您需要使用单个组合选择器而不是两个选择器:
input:not([type=checkbox]):not([type=radio]) { ... }
这将选择不具有type=checkbox 属性和type=radio 属性的任何input 元素。问题中的代码带有两个选择器,选择所有不具有type=checkbox 属性的input 元素以及所有不具有type=radio 属性的input 元素,因此最终选择所有@ 987654330@ 元素。
通常的 CSS 警告适用。您可能希望使用像 Selectivzr 这样的 polyfill 来覆盖旧版本的 IE。
【讨论】:
如果你可以使用 javascript,特别是 jquery,那么你可以使用这个
$("input:not(:checkbox):not(:radio), select").addClass('myClass');
这会将myClass 类添加到所有输入(和选择)但单选和复选框
【讨论】:
您需要设置除这两种之外的所有其他类型的样式,尽管这可能很糟糕。
您可以尝试将一个类添加到您不想设置样式的类中,然后在您的 CSS 中使用它:
input:not(.not){ /*Whatever styling you use*/ }
【讨论】:
input[type="TYPE1"], input[type="TYPE2"] 我只是找不到足够好的所有类型的列表。
如果你想在 Javascript 文件中使用它,你可以改用这个:
$("input").not(["type=checkbox"]).not("#id").each(function() {
例如,我在循环中使用它,不包括所有复选框和 id = id 的元素
【讨论】: