Каскад: источник и порядок
Узнайте, как источник таблицы стилей (пользователь, автор, браузер) и порядок в исходном коде определяют приоритет каскада.
«Каскад: источник и порядок» — бесплатный урок CSS Academy на CoddyKit. Это урок 2 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения CSS Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс CSS Academy содержит 4 уроков всего.
Что такое каскад
Каскад — это алгоритм CSS, определяющий, какое объявление стиля выигрывает, когда несколько правил применяются к одному свойству одного элемента. Он учитывает источник, важность, специфичность и порядок в исходном коде.
Источники каскада
Объявления CSS поступают из трёх источников, расположенных в порядке приоритета:
- Таблица стилей пользовательского агента — значения браузера по умолчанию
- Пользовательская таблица стилей — пользовательские стили (для специальных возможностей)
- Таблица стилей автора — ваши файлы CSS
Приоритет источников каскада (обычный)
Для обычных объявлений (без !important) стили автора переопределяют пользовательские стили, а пользовательские стили переопределяют стили пользовательского агента. Поэтому ваш CSS имеет приоритет над значениями браузера по умолчанию.
Приоритет источников каскада (!important)
Добавление !important изменяет порядок источников на обратный для этого объявления:
!importantпользовательского агента!importantпользователя — наивысший приоритет (специальные возможности)!importantавтора
Поэтому пользовательские переопределения для специальных возможностей (например, принудительные цвета) нельзя отменить с помощью CSS автора.
После источника: специфичность
Когда конкурируют два объявления из одного источника, победителя определяет специфичность. Выигрывает более высокая специфичность — именно об этом разработчики в первую очередь думают при отладке CSS.
После специфичности: порядок в исходном коде
Если два правила имеют одинаковую специфичность, выигрывает то, которое расположено позже в таблице стилей. Это правило «порядка в исходном коде». Поэтому важен порядок операторов @import и объявлений @keyframe.
@layer и источник
Слои каскада CSS (@layer) добавляют новый этап каскада между источником и специфичностью. Порядок слоёв определяет приоритет: объявление в более позднем слое выигрывает у объявления в более раннем независимо от их специфичности.
Полный порядок приоритетов каскада
Полный порядок приоритетов (от наивысшего к наименьшему):
- Источник + важность (!important пользователя, !important автора)
- Значения анимации
- Слои CSS (поздние слои имеют приоритет)
- Специфичность
- Порядок в исходном коде
- Значения переходов
Наследование и каскад
Наследование отличается от каскада. Унаследованные значения поступают из вычисленного стиля родительского элемента. Они уступают любому непосредственно применённому значению, даже если оно задано правилом с низкой специфичностью.
Осознанное использование порядка в исходном коде
Размещайте более специфичные стили (стили вариантов) после базовых стилей в таблице стилей. Поэтому файлы компонентов следует подключать после файлов сброса и базовых файлов.
Отладка каскада
На панели стилей DevTools правила перечислены от самого высокого до самого низкого приоритета. Перечёркнутые правила проиграли в каскаде. Наведите указатель на правило, чтобы увидеть его исходный файл и номер строки для отладки.
Быстрая проверка
Два правила применяются к одному свойству и имеют одинаковую специфичность. Какое из них выигрывает?
Итоги
Каскад разрешает конфликты стилей, используя источник (автор > пользователь > браузер), затем важность (!important меняет порядок на обратный), затем порядок @layer, затем специфичность и порядок в исходном коде. Понимание каскада позволяет точно предсказать, какое правило выиграет в любом конфликте, — больше никаких догадок.
Часто задаваемые вопросы
Урок «Каскад: источник и порядок» бесплатный?
Да — полный текст урока «Каскад: источник и порядок» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс CSS Academy, подпишись на CoddyKit PRO. Курс CSS Academy содержит 4 уроков всего.
Чему я научусь в уроке «Каскад: источник и порядок»?
Узнайте, как источник таблицы стилей (пользователь, автор, браузер) и порядок в исходном коде определяют приоритет каскада. Ты практикуешь CSS Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать CSS Academy?
Предыдущий опыт не требуется. CSS Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 2 из 4.
Сколько времени занимает урок «Каскад: источник и порядок»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке CSS Academy?
Да. Каждый урок CSS Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Расчёт специфичности: встроенный стиль, ID, класс, элемент
- Каскад: источник и порядок
- !important: когда и почему не следует использовать
- Наследование и свойство all