【问题标题】:Apply style to all divs except one specific将样式应用于除一个特定的 div 之外的所有 div
【发布时间】:2011-01-04 10:29:05
【问题描述】:

我正在尝试将样式应用于我的所有 div,除了一个特定的。我正在这样做,但它不起作用:

#toolbar div[class~="olControlNavigationHistory"]{
   float: left;
   background-repeat: no-repeat;
   margin: 2px 12px 2px 12px;
}

所以我需要将此样式应用于#toolbar 中的所有 div,除了具有名为“olControlNavigationHistory”的类的 div。

我该怎么做?这可能吗?

【问题讨论】:

标签: css css-selectors


【解决方案1】:

只需先将规则应用于所有 div:

#toolbar div {
   float: left;
   background-repeat: no-repeat;
   margin: 2px 12px 2px 12px;
}

然后您需要针对特定​​情况将值归零:

#toolbar div.olControlNavigationHistor {
   float: none;
   background-repeat: repeat;
   margin: 0;
}

当然,这假设特定 div 在没有应用第一条规则的情况下拥有的属性值是每个属性的默认值(例如 margin: 0float: none。)

编辑: 但是,将来当 CSS3 被所有人支持时,您也可以将原来的规则改写为 #toolbar div:not(.olControlNavigationHistory),它会正确而优雅地工作。

【讨论】:

  • @user552669 对于记录,~= 表示包含,而不是“不等于”-w3schools。然而,将来当 CSS3 被所有人支持时,您也可以将原来的规则改写为 #toolbar div:not(.olControlNavigationHistory),它会正常而优雅地工作。
【解决方案2】:

我只是在做同样的事情并找到了这个答案 使用 :not 选择器:

div:not(#div1){
    color:red;
}

它发布在Apply CSS Style on all elements except with a SPECIFIC ID

【讨论】:

    猜你喜欢
    • 2013-10-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-08
    • 2013-03-31
    • 2022-01-22
    相关资源
    最近更新 更多