2012-02-15 2 views
0

В следующем примереКак я могу переопределить CSS?

http://jsfiddle.net/xBRPg/

Я пытаюсь создать желтый фон для одного из моих строк таблицы. Следующая строка кода

<table class="table table-bordered table-striped"> 

Кажется, заменяет мой собственный стиль. Если я удалю классы, строка будет желтой по желанию. Есть ли способ сохранить классы, но переопределить настройку, чтобы мой цвет занимал первостепенное значение?

ответ

1

Это происходит из-за специфики CSS - table.table-striped tr более конкретно, чем table tr. Более конкретные правила переопределяют менее конкретные. На мой взгляд, вы должны избегать !important как можно дольше, и вместо этого сосредоточьтесь на том, чтобы сделать ваши селекторы более конкретными. Поэтому в вашем случае сделайте это:

table.table-striped tr.zebraHover td { 
    background-color: #FFFACD; 
} 
4

Ряд является желтый цвет. Просто внутри ячеек есть # f9f9f9, поэтому вы не можете видеть цвет фона в строке.

Вам нужно сменить селектор, чтобы он соответствовал ячейкам в строке, а не самой строке. Вам также необходимо увеличить specificity селектора, поскольку те, которые используются уже, более конкретны, чем у вас есть.

0

Изменить это в CSS

tr.zebraHover td { 
      background-color: #FFFACD !important; 
} 

И да, я знаю, что это очень грязная. Если кто-то знает это лучше, прокомментируйте мой ответ. Я бы хотел знать лучшее решение!

+0

Ему не нужно использовать! Важно. Проблема здесь - это приоритет выбора. Ему просто нужен селектор с более высоким значением или равным, определенным позже. – reedlauber

+0

Спасибо, я нашел еще один ответ благодаря вам. Изменен класс на идентификатор, чтобы он был более конкретным, чем класс. Работает, как очарование, спасибо –

+0

! Важный плохой практикующий и устаревший ... –

0

Проблема вызвана правилом, установленным чередующиеся цвета фона строк с использованием селекторов с высокой специфичностью. Чтобы соответствующим образом их переопределить, используйте, например,

tr.zebraHover, 
    .table-striped tbody tr:nth-child(2n+1).zebraHover td 
    { 
     background-color: #FFFACD; 
    } 
Смежные вопросы