Вопрос проверяет понимание каскада CSS и правил, по которым браузер выбирает итоговый стиль элемента.
Приоритет CSS-правил формируется на основе каскада: важности (!important), специфичности селектора и порядка объявления. Если важность одинаковая, браузер сравнивает специфичность селекторов. Если и она равна, выигрывает правило, объявленное позже. Эти правила позволяют браузеру однозначно определить итоговый стиль.
CSS расшифровывается как Cascading Style Sheets, и каскад — ключевая идея.
Определение: Каскад CSS — механизм, по которому браузер выбирает одно итоговое правило из нескольких подходящих.
Браузер применяет правила в следующем логическом порядке:
!important перекрывает обычные правила.
inline-стили с !important почти всегда выигрывают.
Специфичность определяется “весом” селектора:
inline-стили → самый высокий приоритет
#id
.class, [attr], :pseudo-class
tag, ::pseudo-element
Пример:
#app .button { color: red; }
.button { color: blue; }
Будет применён red.
Если селекторы одинаковые по специфичности:
правило, объявленное позже, имеет приоритет
.button { color: red; }
.button { color: blue; } /* применится это */
Некоторые свойства наследуются (color, font), но наследование не побеждает явные правила.
Вывод: приоритет CSS-правил определяется важностью, затем специфичностью селектора и только потом порядком объявления. Понимание этого избавляет от “магического” использования !important.
Frontend developer
Ментор по Frontend
Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства
Записаться на консультацию