2010-11-10 2 views
2

У меня есть следующий Dóm структуру:CSS! Важно не иметь приоритета?

<div class="ui-tabs"> 
<ul> 
    <li class="ui-state-default ui-tabs-selected ui-state-active"> 
     <a href="#">Text</a> 
    </li> 
</ul> 

И следующий CSS разметка:

.ui-tabs .ui-state-active { 
background: #084; 
color: #E6EFEA !important; 
} 

a:link { 
color: #00C; 
} 

Я не могу получить первый цвет (E6EFEA) взять верх. Я пробовал его в FireFox и Chrome, Chrome даже показывает свойство a: link, поцарапанное ... как если бы какой-то другой цвет имел приоритет, но все равно отображает синий (00C). Просто чтобы убедиться, что я взял все остальные # 00C refeence в файле CSS. Есть идеи?

Я также выставил грубый пример на JSBin.

ответ

9

!important работает только тогда, когда атрибут применяется к одному и тому же элементу. В этом случае вы применяете его к родительскому элементу <a>, а его -, установленный там (выведите текст за пределами <a>, чтобы убедить себя).

Если вы хотите переопределить цвет самого элемента <a>, ваше правило CSS должно применяться к <a>, а не к предку.

+0

Именно то, что я имел в виду сказать! Хорошее объяснение. –

+0

Зачем вам большое спасибо! :) – cdhowie

1
.ui-tabs .ui-state-active a:link { 
color: #E6EFEA !important; 
} 

Это должно сделать это.

Вам необходимо установить цвет в теге, а не в класс .ui-state-active.

0

Вы должны также указать: ссылку

.ui-tabs .ui-state-active:link { 
    background: #084; 
    color: #E6EFEA !important; 
} 
+0

Ухм, я не думаю, что это сработает. – cdhowie

+0

Я уверен, что это не сработает, поскольку .ui-state-active является родительским и не является тегом . –

+0

ops извините за туман. Я забыл «а», как решение jensen – 2010-11-10 17:05:31

Смежные вопросы