【问题标题】:Is it possible to define in CSS NOT to apply style if element have certain class? [duplicate]如果元素具有特定类,是否可以在 CSS 中定义不应用样式? [复制]
【发布时间】:2015-02-28 18:35:06
【问题描述】:

我有一个应用程序,其中样式定义为

select { 
    border: 1px solid #6FA7D1; 
    outline:0; 
    height:25px; 
    padding-left: 5px; 
    font-family:Arial; 
    font-size:12px; 
    transition: all 0.8s; 
    border-bottom-left-radius: 5px; 
    border-top-left-radius: 5px; 
    }

所以,每个<select></select> 都会得到相同的样式,这是意料之中的,但是,我正在使用一些第三方插件,例如 jqGrid,我不想在 jqGrid 中呈现的 <select> 上应用相同的样式寻呼机。这个<select> 有一些类。 有没有办法在 CSS 中告诉不要应用到具有特定类的 DOM 上?

请不要在jqGrid中严格关注这个<select>,我有更多的情况可以使用这样的排除。

【问题讨论】:

  • 使用 select:not(.someclass):not(.anotherclass) { } /* someclass 和 anotherclass 应该分配给选择元素 */

标签: html css


【解决方案1】:

CSS3 中的Can I write a CSS selector selecting elements NOT having a certain class? 怎么样?

select:not(.someClass) {
    /* Styles */
}

【讨论】:

    【解决方案2】:

    您可以使用:not选择器在某些情况下阻止应用程序,例如:

    :not(selector) select

    选择器与 jQGrid idclass 相关的地方

    否定 CSS 伪类 :not(X) 是一个函数式表示法 将一个简单的选择器 X 作为参数。它匹配一个元素 不是由参数表示的。 X 不能包含另一个 否定选择器。

    这基本上说目标选择元素不是selector 的子元素(在本例中为 jQGrid)

    您可以使用:not 排除匹配元素的任何子集。

    :not(div) > span {
      color: red;
    }
    <span>Make me red!</span>
    <div><span>...but not me...</span>
    </div>

    【讨论】:

      【解决方案3】:

      你不能,唯一的选择是:

      • &lt;select&gt; 样式放入一个类中,例如.select,并将 &lt;select class="select"&gt; 添加到您想要设置样式的所有元素中。

      • 添加一个类,例如select-jqGrid,覆盖 select 中的所有默认样式并将其添加到 jqGrid 内的所有 &lt;select&gt; 元素中。

      【讨论】:

        【解决方案4】:

        http://jsfiddle.net/iaezzy/1s5g5mjn/

        .element:not(.exclude) {
            background: green;
        }
        .exclude {
            background:red;
        }
        

        【讨论】:

          猜你喜欢
          • 2011-12-06
          • 1970-01-01
          • 1970-01-01
          • 2014-01-30
          • 1970-01-01
          • 2017-11-23
          • 1970-01-01
          • 2021-05-04
          • 1970-01-01
          相关资源
          最近更新 更多