0Pricing
CSS Academy · Урок

Вложенность в нативном CSS

Пишите вложенные правила CSS без препроцессора, используя спецификацию нативной вложенности CSS.

«Вложенность в нативном CSS» — бесплатный урок CSS Academy на CoddyKit. Это урок 1 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения CSS Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс CSS Academy содержит 4 уроков всего.

Что такое вложенность CSS?

Нативная вложенность CSS (доступна во всех современных браузерах с базовой поддержкой 2024 года) позволяет записывать правила CSS внутри других правил, повторяя синтаксис вложенности, который ранее был доступен только в препроцессорах Sass/Less. Вложенные правила автоматически наследуют контекст родительского селектора.

Базовый синтаксис вложенности

Записывайте дочерние селекторы внутри блока правила родителя. Браузер автоматически объединяет родительские и дочерние селекторы. Символ & (селектор вложенности) явно ссылается на родительский селектор для модификаторов и псевдоклассов.

<div class="card is-active">
  <div class="title">Nested Card Title</div>
  <p>Card body text.</p>
</div>

Селектор вложенности &

& явно представляет родительский селектор во вложенных правилах. Используйте его для псевдоклассов (&:hover), псевдоэлементов (&::before), классов-модификаторов (&.active) и селекторов атрибутов (&[disabled]). Без & вложенные правила создают селекторы потомков.

Вложенность псевдоэлементов

Естественным образом вкладывайте правила псевдоэлементов внутрь родительского правила: .button { &::before { content: ""; } &::after { content: ""; } }. Так все стили кнопки находятся рядом, и не приходится повторять селектор, как в плоском CSS.

Вложенность правил at-rule

Медиазапросы и другие правила at-rule можно вкладывать внутрь правил (Chrome 112+, Firefox 117+): .card { padding: 1rem; @media (min-width: 768px) { padding: 2rem; } }. Адаптивные стили находятся рядом с элементом, на который они влияют, а не в отдельном блоке медиазапроса в конце файла.

Специфичность селекторов

Вложенность не меняет правила специфичности — объединённый селектор имеет такую же специфичность, как и при записи без вложенности. .card .title, записанный с вложенностью или без неё, имеет одинаковую специфичность (0,2,0). Вложенность — это удобный синтаксис, а не изменение специфичности.

Неявный потомок и явный &

Вложенный селектор без & создаёт селектор потомка: .card { .title {} } преобразуется в .card .title. С &: .card { &.active {} } преобразуется в .card.active (без пробела — это класс-модификатор, а не потомок).

BEM с нативной вложенностью

Нативная вложенность не идеально подходит для BEM: селекторы .block__element и .block--modifier являются строками, а одной операции с & недостаточно, чтобы создать их. Используйте вложенность для псевдоклассов и вложенных структур компонентов, а не для объединения строк BEM (для этого по-прежнему нужен препроцессор).

Переход с Sass

Большая часть синтаксиса вложенности Sass совпадает с нативной вложенностью CSS. Исключение: Sass поддерживает объединение строк с помощью &-modifier, а нативный CSS — нет. При переходе найдите шаблоны &- или &__ и преобразуйте именно эти правила в плоскую запись, сохранив остальную вложенность.

Поддержка браузерами

Нативная вложенность CSS поддерживается в Chrome 112+, Firefox 117+ и Safari 16.5+. Для поддержки старых браузеров используйте PostCSS с postcss-nesting, чтобы во время сборки преобразовывать нативный синтаксис вложенности в плоский CSS — это позволяет уже сейчас писать код с нативной вложенностью.

DevTools и вложенность

Chrome DevTools показывает вложенные правила на панели Styles в их вложенной форме. При нажатии на вложенное правило открывается соответствующее место в исходном коде на панели Sources. Отладка вложенного CSS в современных DevTools так же понятна, как отладка плоского CSS.

Проверка знаний

Чем отличается вложенность с селектором & от вложенности без него?

Итоги

Нативная вложенность CSS добавляет в обычный CSS синтаксис вложенных правил, похожий на Sass. Селектор & создаёт составные селекторы для псевдоклассов, псевдоэлементов и модификаторов. Вложенные медиазапросы размещают адаптивные стили рядом с соответствующими элементами. PostCSS преобразует нативную вложенность для старых браузеров, что позволяет постепенно внедрять её уже сегодня.

Часто задаваемые вопросы

Урок «Вложенность в нативном CSS» бесплатный?

Да — полный текст урока «Вложенность в нативном CSS» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс CSS Academy, подпишись на CoddyKit PRO. Курс CSS Academy содержит 4 уроков всего.

Чему я научусь в уроке «Вложенность в нативном CSS»?

Пишите вложенные правила CSS без препроцессора, используя спецификацию нативной вложенности CSS. Ты практикуешь CSS Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать CSS Academy?

Предыдущий опыт не требуется. CSS Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 1 из 4.

Сколько времени занимает урок «Вложенность в нативном CSS»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке CSS Academy?

Да. Каждый урок CSS Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Вложенность в нативном CSS
  2. Связанный псевдокласс :has()
  3. @scope для изолированных стилей
  4. API переходов между представлениями
← Назад к CSS Academy