Как в CSS определяется приоритетность стилей?
Основы CSS
Приоритет стилей определяет каскад: браузер сравнивает правила по нескольким критериям по порядку, пока не найдёт победителя.
Порядок сравнения
- Происхождение и важность —
!importantиз пользовательских стилей и браузера, затем!importantавтора, затем обычные стили автора. - Слои каскада (
@layer) — стили вне слоёв и более поздние слои важнее. - Специфичность —
(id, классы/атрибуты/псевдоклассы, теги/псевдоэлементы). - Порядок в коде — при равенстве побеждает правило, объявленное позже.
Инлайн-стиль style="…" перебивает любые селекторы без !important.
Пример специфичности
p { color: black; } /* (0,0,1) */
.text { color: blue; } /* (0,1,0) */
#intro { color: red; } /* (1,0,0) — победит */Нюансы
:is()и:not()берут специфичность самого сильного аргумента,:where()— нулевую.- Наследуемое значение слабее любого правила, напрямую нацеленного на элемент.
Коротко для собеседования
Приоритет решает каскад: важность и происхождение → слои → специфичность → порядок в коде; инлайн-стили сильнее селекторов.
Подробнее: MDN — Каскад и наследование