有没有办法从css类中排除标记

时间:2009-04-28 23:45:35

标签: css

我有css适用于表的所有tr标签。

所以在我的html中我没有tr标签的样式。但是,对于我表中的一个TR标记,我不想对所有表应用通用的TR。有没有办法排除这个TR?

.statisticsTable {
    border:2px solid #990000;
    width:100%;
}
.statisticsTable tr {
    font-weight : bold;
    font-size : 9pt;
    font-family : Arial,Helvetica,sans-serif,Verdana,Geneva;
    color: #ffffff;
    background-color:#990000;

}

<table class="statisticsTable">
   <tr><td colspan="7" class="tableHeaderText">HUB Statistics</td></tr>
   <tr>
      <th colspan="2">HUB</th>
      <th >House Houlds Evaluated</th>
      <th >Total Debt Owed</th>
   </tr>

       <tr  class="<s:if test="#status.even">even</s:if><s:else>odd</s:else>">
           <td  rowspan=3 valign=top>213-65-6425</td>
           <td >All</td>
           <td >t1</td>
           <td >t2</td>

在具有'even'或'odd'类的<tr>之上我不希望此<tr>具有.statisticsTable tr属性。这有可能吗?

主要认为我想要避免的是背景颜色:#990000;和颜色:#ffffff;

3 个答案:

答案 0 :(得分:42)

CSS级联,意味着您可以覆盖先前定义的属性的值。

你会这样做:

.statisticsTable tr.even, .statisticsTable tr.odd {
    font-weight: normal;
    font-size: DEFAULT; /* what ever your default is */
    font-family: DEFAULT; /* what ever your default is */
    /* I would use the font shorthand property */
    color: DEFAULT;
    background: DEFAULT;
}

如果你想使用CSS3,你可以使用:not仅将以下样式应用于没有偶数或奇数类的TR元素:

.statisticsTable tr:not(.even):not(.odd) {
    font: bold 9pt Arial,Helvetica,sans-serif,Verdana,Geneva;
    color: #fff;
    background:#990000;
}

编辑: not(.even,.odd)无效语法因此不起作用(至少不在Chrome中) 正确的语法是:not(selector),但你可以这样做:not(selector1):not(selector2)这些not()s在同一级别上。

答案 1 :(得分:2)

在支持CSS3伪选择器的浏览器中(这包括大多数浏览器,特别是包括IE7和IE88而不是IE6),像.statisticsTable tr:not(.even):not(.odd)这样的选择器用于第二条规则分组可以做你想要的。

答案 2 :(得分:0)

你有几个选项,在你的情况下我能看到的最简单的方法是覆盖statisticsTable中的CSS,并在类'even'和'odd'中使用你想要的样式的CSS。