Что такое каскад в CSS
Каскад (Cascading) — это основной механизм, определяющий, какой стиль будет применён, если на один и тот же элемент приходят несколько CSS-правил.
CSS расшифровывается как Cascading Style Sheets — каскадные таблицы стилей. Слово "каскадные" указывает на то, что стили накладываются друг на друга и применяются по определённым правилам приоритетности.
Что влияет на выбор стиля?
Если к одному элементу применяются несколько CSS-правил, браузер выбирает то, которое имеет наибольший приоритет. При этом учитываются:
Специфичность (Specificity)
Насколько «точно» CSS-правило указывает на элемент. Чем выше специфичность, тем выше приоритет.
div a /* низкая специфичность */
.menu a /* выше */
#header a /* ещё выше */
Важность (!important)
Если к свойству добавлен !important
, оно переписывает даже более специфичные правила.
p { color: red !important; }
Источник стилей
Источник, откуда пришёл стиль:
- Пользовательские стили (в браузере)
- Встроенные стили (
style="..."
) - Внешние таблицы стилей (
<link>
/@import
) - Стили по умолчанию (user-agent styles)
- При равной специфичности и отсутствии
!important
, побеждает стиль, определённый последним в коде.
Порядок подключения
Если два правила абсолютно равны по специфичности и важности, применяется последнее по порядку.
Пример: как работает каскад
<p class="text" id="paragraph" style="color: green;">Hack Frontend</p>
p {
color: red;
}
.text {
color: blue;
}
#paragraph {
color: orange;
}
p {
color: black !important;
}
Что применится?
-
color: black
— у него!important
→ максимальный приоритет. -
Без
!important
сработал быstyle="color: green;"
, потому что инлайн-стиль имеет более высокий приоритет, чем селекторы в CSS.
Таблица приоритетов (по убыванию)
Правило | Приоритет |
---|---|
!important | 🔥 Высший |
inline-стили style="..." | Очень высокий |
ID селекторы (#id ) | Высокий |
Классы, псевдоклассы (.class ) | Средний |
Теги (div , p ) | Низкий |
Стили по умолчанию браузера | Самый низкий |
Итог
- Каскад — это то, как CSS решает, какое свойство применить, когда конфликтуют стили.
- Основные факторы: специфичность, !important, источник и порядок.
- Понимание каскада помогает избегать конфликтов в стилях и писать чистый и предсказуемый CSS.
Важно:
Частое использование !important
— это признак плохой структуры CSS. Используйте каскад и специфичность правильно.