将样式应用于除特定div之外的所有div

时间:2011-01-04 10:29:06

标签: css

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

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

所以我需要将这个样式应用于#toolbar中的所有div除了带有名为“olControlNavigationHistory”的类之外的div。

我该怎么做?这可能吗?

提前致谢!

2 个答案:

答案 0 :(得分:11)

首先将规则应用于所有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),并且它可以正常且优雅地工作。

答案 1 :(得分:2)

我只是这样做,并找到了这个答案 使用:not selector:

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

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