2014-12-03 9 views
3

Я работал с CSS целую вечность, и я думал, что хорошо понимаю специфику, но этот пример меня озадачивает; это поздно ночью, так что я мог бы быть что-то отсутствует очевидное:Необычное поведение специфичности CSS

.class span { 
 
    color: blue; 
 
} 
 

 
section#id { 
 
    color: beige; 
 
}
<div class="class"> 
 
    <section id="id"> 
 
    <span>Test</span> 
 
    </section> 
 
</div>

Specificity для section#id составляет 101, в то время как для .class span является 11, а на верхней части этого, второе правило даже уточнена после первый.

Какая очевидная вещь мне не хватает?

ответ

2

Вы не нацеливаете этот диапазон на второй селектор. Цвет будет только каскадом к элементам, где свойство цвета установлено на inherit (по умолчанию).

+0

Спасибо, это была действительно очевидная вещь, о которой я думал. Я просто устал, спасибо, что прояснил мне голову. –

+0

@NinGenShinRa не беспокойтесь! –

3

Первое правило сужается до тега span. Второе правило - более высокий уровень в родительском разделе. Итак, да, .class span будет иметь приоритет, потому что он попадает в фактический тег.

+0

Благодарим вас за ответ. Я принял ответ Кристиана, потому что это было более конкретным (каламбур) для моей проблемы. –

+0

Не беспокойтесь, рад, что проблема была решена в любом случае :) – Maverick

+0

Yup: Я имею в виду, что проблема была очень легко решить, у меня только один из них * «Я не знаю, почему это работает» * моменты, вы знаете ? ;) –

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