Добавление стилей в слои
Назначайте правила CSS определённым слоям с помощью блоков @layer и импортируемых таблиц стилей.
«Добавление стилей в слои» — бесплатный урок CSS Academy на CoddyKit. Это урок 2 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения CSS Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс CSS Academy содержит 4 уроков всего.
Два способа добавления стилей в слои
Можно добавлять стили в слой непосредственно (внутри блока @layer) или через @import, чтобы назначить импортируемой таблице стилей определённый слой.
Блок @layer непосредственно в таблице стилей
Поместите правила внутрь блока @layer с именем слоя:
<button class="button">Layered button</button>Добавление в существующий слой
Можно добавлять стили в один слой в нескольких отдельных блоках @layer. Все объявления объединяются в этом слое:
<button class="button">Button</button>
<input class="input" placeholder="Input" />Анонимные слои
Блок @layer без имени создаёт анонимный слой. К анонимным слоям нельзя добавлять стили позже, и они существуют в том месте, где появились:
<p style="margin: 24px; border: 1px dashed #999;">Normal paragraph (default margin)</p>
<p class="reset" style="border: 1px dashed #999;">Reset paragraph (anonymous layer sets margin: 0)</p>@import с @layer
Назначьте целую импортируемую таблицу стилей определённому слою:
<p>This scene assigns whole imported stylesheets to layers — see the CSS panel.</p>Разделение CSS компонента между файлами
В модульном проекте каждый файл компонента добавляет стили в слой компонентов:
<button class="button">Button</button>
<div class="card">Card</div>Слой и PostCSS/Sass
Sass и PostCSS работают вместе с @layer. Можно определить слои в основном входном файле и использовать @use или @import, чтобы подключить файлы-фрагменты компонентов, добавляющие стили в эти слои.
Встроенные стили и слои
Встроенные стили (атрибут style="") не зависят от слоёв и всегда имеют преимущество над стилями любого слоя. В слои можно помещать только правила таблицы стилей, включая блоки <style>.
Отладка слоёв в DevTools
Chrome DevTools показывает границы слоёв на панели «Стили». Правила из слоя с более низким приоритетом, переопределённые слоем с более высоким приоритетом, отображаются перечёркнутыми, а выигравший слой указывается рядом.
Обратная совместимость
Браузеры, не поддерживающие @layer, воспринимают все блоки @layer как стандартные блоки CSS и отображают всё содержимое. Поведение каскада отличается, но стили не теряются. Для безопасности заключайте код, зависящий от этой возможности, в @supports (@layer selector).
Перенос существующего CSS в слои
Стратегия переноса:
- объявите слои в начале основного файла CSS
- поместите каждый существующий раздел CSS в соответствующий блок слоя
- проверьте результат и исправьте возникающие проблемы с приоритетом
- со временем удалите ненужные селекторы с высокой специфичностью
Быстрая проверка
Как добавить стили из нескольких отдельных блоков @layer в один слой с тем же именем?
Повторение
Добавляйте стили в слои с помощью именованных блоков @layer name { }; такие блоки можно разделять между файлами, и все они будут объединены. Назначайте импортируемым таблицам стилей слои с помощью @import layer(). Анонимные слои нельзя открыть повторно. Встроенные стили всегда переопределяют стили, объявленные в слоях.
Часто задаваемые вопросы
Урок «Добавление стилей в слои» бесплатный?
Да — полный текст урока «Добавление стилей в слои» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс CSS Academy, подпишись на CoddyKit PRO. Курс CSS Academy содержит 4 уроков всего.
Чему я научусь в уроке «Добавление стилей в слои»?
Назначайте правила CSS определённым слоям с помощью блоков @layer и импортируемых таблиц стилей. Ты практикуешь CSS Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать CSS Academy?
Предыдущий опыт не требуется. CSS Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 2 из 4.
Сколько времени занимает урок «Добавление стилей в слои»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке CSS Academy?
Да. Каждый урок CSS Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Объявление и порядок @layer
- Добавление стилей в слои
- Приоритет слоёв и взаимодействие с !important
- Слои в стороннем коде