2009-07-11 5 views
2

И я применить стили с этими классамиКак переопределить приоритет в классах CSS?

#contentheader .cat { 
border-top:3px solid #ccc; 
background-color:#eee; 
overflow:hidden; 
} 

#contentheader .cat li a { 
color:#999; 
font-weight:700; 
text-decoration:none; 
font-size:13px; 
display:block; 
border-right:1px solid #fff; 
float:left; 
padding:10px; 
} 

#contentheader .cat li a:hover { 
background-color:#E9E9E9; 
} 

Проблема в том, что мне нужен первый <li> (Home), чтобы быть другим, может быть, сделать текст другого цвета или, возможно, сделать шрифт более широким. Я пытаюсь присвоить класс непосредственно <li> или <a> тегам, но он не работает, он всегда принимает стили в классе #contentheader .cat li a. Каков наилучший способ сделать это? Благодаря

+1

Название должно быть изменено, поскольку это не относится к приоритету приоритета. Это просто выбор одного дочернего элемента. Первоочередной приоритет делается с! важный. – geofflane

ответ

2

Вам необходимо увеличить specificity of that selector, чтобы он переопределил правило с более низкой специфичностью селектора.

Так что, если вы назначаете класс к li элементу, используйте #contentheader .cat li.classa, для a элемента, используйте #contentheader .cat li a.class.

3

Вы можете использовать: первый ребенок селектор в CSS:

#contentheader .cat ul li:first-child a { 
    color: red; 
} 

Это находит первый Lī ребенка ул. Просто убедитесь, что это происходит после обычного лиза, чтобы он имел преимущество или использовал! важный модификатор для определения цвета/размера.

+0

Вряд ли сюрприз, но IE6 не поддерживает псевдоселектор первого ребенка. http://kimblim.dk/css-tests/selectors/ имеет большой обзор того, какие браузеры поддерживают. – Eystein

+0

Спасибо, да, это может быть проблемой, если она не поддерживается во всех наиболее используемых веб-браузерах. – segaco

+0

IE 6 едва поддерживает CSS. :) – geofflane

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