2014-11-30 3 views
0

У меня есть #nav a {color:1} селектор и несколько строк ниже, другой селектор a.current {color:2}, который указывает больше свойств на текущий элемент (панель навигации и выбранный элемент/страница). Таким образом, цвет от второго селектора не работает, цвет 1 остается на элементе.Когда CSS каскадирование не работает

Если я положил #nav a.current {color:2}, то он работает. Почему так? Кажется, что селектор с указанным разделом id = "nav" имеет своего рода приоритет.

+8

Он делает; это называется [специфика] (https://developer.mozilla.org/en-US/docs/Web/CSS/Specificity). – Ryan

ответ

1

Как упоминается в одном из комментариев, специфика заключается в том, что происходит здесь. Начиная с the official definition, селектор #nav a имеет специфичность 101 (при условии, что основание 10), а a.current имеет спецификацию 10. Первая имеет высокую специфичность, поэтому имеет приоритет.

#nav a.current имеет специфичность 111

Вот official specification of the cascade для справки.

+1

Специфика на самом деле является одним из многих компонентов каскада, поэтому на самом деле каскад находится в полной силе. Каскад не просто ссылается на порядок деклараций в одном правиле стиля, а на разрешение стиля в целом. – BoltClock

+0

Спасибо за исправление; Я отредактировал ответ. –

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