Да, в CSS есть иерархия правил — каскад. На итоговый стиль влияют источник стиля, важность (!important), специфичность селектора, порядок объявления и наследование. В конфликте побеждает правило с более высоким приоритетом по этим уровням.
CSS — это «каскадные таблицы стилей», и каскад определяет, какое из нескольких правил в итоге применится к одному и тому же элементу. Браузер последовательно сравнивает несколько уровней приоритета, чтобы выбрать финальное значение свойства.
Упрощённо иерархия выглядит так (от более общего к более сильному):
style сильнее, чем правила во внутренних (<style>) и внешних файлах.!important перекрывают обычные правила из того же источника; пользовательские !important могут оказаться выше авторских.id > селекторы по классам/атрибутам/псевдоклассам > селекторы по тегу и псевдоэлементы > универсальный селектор *.font-family, color) наследуется от родителя, но их всегда можно переопределить более конкретным правилом ниже по каскаду.Важно на собеседовании показать, что вы видите не одну «магическую формулу», а цепочку: источник → важность → специфичность → порядок → наследование, и умеете по ней объяснить любой конфликт стилей.
Ниже пример того, как специфичность селектора влияет на выбор цвета текста для одного и того же элемента:
А здесь показано, как !important может перебить более специфичный, но «обычный» селектор и как влияет порядок объявления:
Отметьте свой прогресс