设置除复选框和单选按钮之外的所有输入的样式

问题描述 投票:0回答:5

我正在尝试使用我使用的风格

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

但显然这是行不通的。 如何使用我为所有输入编写的样式,但只有这两个?

css checkbox radio-button
5个回答
87
投票

您需要使用单个组合选择器而不是两个选择器:

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

这将选择任何不具有属性

input
并且不具有属性
type=checkbox
type=radio
元素。问题中的代码有两个选择器,选择所有不具有属性
input
type=checkbox
元素以及所有不具有属性
input
type=radio
元素,因此最终选择所有
 input
元素。

常见的 CSS 警告适用。您可能希望使用像Selectivzr这样的polyfill来覆盖旧版本的IE。


3
投票

如果你会使用javascript,特别是jquery,那么你可以使用这个

$("input:not(:checkbox):not(:radio), select").addClass('myClass');

这会将类

myClass
添加到所有输入(和选择),但单选框和复选框

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


1
投票

您需要设置除这两种类型之外的所有其他类型的样式,尽管这可能很糟糕。

您可以尝试向您不需要样式的类添加一个类,然后在 CSS 中使用它:

 input:not(.not){ /*Whatever styling you use*/ }

1
投票

如果你想在 Javascript 文件中使用它,你可以使用它:

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

我在循环中使用它,排除所有复选框和 id = id 的元素


0
投票

输入:not([type=checkbox]):not([type=radio]) 寻找解决方案是行不通的。我想不通

© www.soinside.com 2019 - 2024. All rights reserved.