【问题标题】:Style all Inputs but checkbox and radio样式化所有输入,但复选框和单选
【发布时间】:2014-03-04 07:21:12
【问题描述】:

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

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

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

【问题讨论】:

    标签: css checkbox radio


    【解决方案1】:

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

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

    这将选择不具有type=checkbox 属性和type=radio 属性的任何input 元素。问题中的代码带有两个选择器,选择所有不具有type=checkbox 属性的input 元素以及所有不具有type=radio 属性的input 元素,因此最终选择所有@ 987654330@ 元素。

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

    【讨论】:

    • 我发现我需要在单词 radio 和单词 checkbox 周围加上引号,否则这很好用,谢谢!输入:not([type='radio']):not([type='checkbox'])
    【解决方案2】:

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

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

    这会将myClass 类添加到所有输入(和选择)但单选和复选框

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

    【讨论】:

      【解决方案3】:

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

      您可以尝试将一个类添加到您不想设置样式的类中,然后在您的 CSS 中使用它:

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

      【讨论】:

      • 很遗憾,如果没有 JavaScript,我无法添加到这个 html。我在我的 CMS 中使用 Drupal,目前我们已经在多个不同的场景中使用了这些输入。
      • 你会用Javascript吗?
      • 不幸的是我不能。我想我必须以这种格式添加每种类型的输入 input[type="TYPE1"], input[type="TYPE2"] 我只是找不到足够好的所有类型的列表。
      【解决方案4】:

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

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

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

      【讨论】:

        猜你喜欢
        • 2012-01-22
        • 1970-01-01
        • 2010-11-10
        • 2010-11-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-01-07
        相关资源
        最近更新 更多