Есть ли способ исключить тег из класса CSS - PullRequest
28 голосов
/ 29 апреля 2009

У меня есть 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>

выше <tr>, который имеет класс 'even' или 'odd'. Я не хочу, чтобы <tr> имел свойства .statisticsTable tr. это возможно?

Главное, что я хочу избежать, это цвет фона: # 990000; и цвет: #ffffff;

Ответы [ 3 ]

42 голосов
/ 29 апреля 2009

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, вы можете использовать : не , чтобы применять только следующие стили к элементам 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 (селектор), однако вы можете сделать: not (selector1): not (selector2) эти not () находятся на одном уровне.

2 голосов
/ 29 апреля 2009

В браузере, который поддерживает псевдо-селекторы CSS3 (в том числе большинство браузеров, в частности IE7 и IE88, а не IE6), селектор типа .statisticsTable tr: not (.even): not (.odd) для этого второго правила группировка будет делать то, что вы хотите.

0 голосов
/ 29 апреля 2009

У вас есть несколько вариантов, самый простой, который я могу видеть в вашей ситуации, это переопределить CSS в статистической таблице, добавив CSS к стилю, который вы хотите в классах 'even' и 'odd'.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...