0Pricing
CSS Academy · Lekcja

Natywne zagnieżdżanie CSS

Pisz zagnieżdżone reguły CSS bez preprocesora, korzystając ze specyfikacji natywnego zagnieżdżania CSS.

Natywne zagnieżdżanie CSS to bezpłatna lekcja CSS Academy na CoddyKit. To lekcja 1 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej CSS Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs CSS Academy zawiera 4 lekcji w sumie.

Czym jest zagnieżdżanie CSS?

Natywne zagnieżdżanie CSS (standard od 2024 roku, obsługiwany przez wszystkie nowoczesne przeglądarki) pozwala umieszczać reguły CSS wewnątrz innych reguł, odwzorowując składnię zagnieżdżania dostępną wcześniej wyłącznie w preprocesorach Sass/Less. Zagnieżdżone reguły automatycznie dziedziczą kontekst selektora nadrzędnego.

Podstawowa składnia zagnieżdżania

Selektory elementów potomnych należy zapisywać wewnątrz bloku reguły nadrzędnej. Przeglądarka automatycznie łączy selektory nadrzędne i potomne. & (selektor zagnieżdżania) jawnie odwołuje się do selektora nadrzędnego w przypadku modyfikatorów i pseudoklas.

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

Selektor zagnieżdżania &

& jawnie reprezentuje selektor nadrzędny w zagnieżdżonych regułach. Proszę używać go w przypadku pseudoklas (&:hover), pseudoelementów (&::before), klas modyfikatorów (&.active) i selektorów atrybutów (&[disabled]). Bez &, zagnieżdżone reguły tworzą selektory elementów potomnych.

Zagnieżdżanie pseudoelementów

Proszę zagnieżdżać reguły pseudoelementów bezpośrednio wewnątrz elementu nadrzędnego: .button { &::before { content: ""; } &::after { content: ""; } }. Dzięki temu wszystkie style przycisku znajdują się w jednym miejscu, bez powtarzania selektora wymaganego w płaskim CSS.

Zagnieżdżanie reguł at

Zapytania media i inne reguły at można zagnieżdżać wewnątrz reguł (Chrome 112+, Firefox 117+): .card { padding: 1rem; @media (min-width: 768px) { padding: 2rem; } }. Style responsywne znajdują się obok elementu, którego dotyczą, zamiast w osobnym bloku zapytania media na końcu pliku.

Specyficzność selektorów

Zagnieżdżanie nie zmienia zasad specyficzności — połączony selektor ma taką samą specyficzność, jak gdyby został zapisany w sposób płaski. .card .title zapisany w sposób zagnieżdżony lub płaski ma taką samą specyficzność (0,2,0). Zagnieżdżanie jest tylko udogodnieniem składniowym, a nie zmianą specyficzności.

Niejawny selektor potomny a jawny &

Zagnieżdżony selektor bez & tworzy selektor elementu potomnego: .card { .title {} } jest rozwijany do .card .title. Z użyciem &: .card { &.active {} } jest rozwijany do .card.active (bez spacji — jest to klasa modyfikatora, a nie element potomek).

BEM z natywnym zagnieżdżaniem

Natywne zagnieżdżanie nie jest idealne dla BEM — selektory .block__element i .block--modifier są ciągami znaków, a samo & nie pozwala ich konstruować. Proszę używać zagnieżdżania w przypadku pseudoklas i zagnieżdżonych struktur komponentów, a nie do łączenia ciągów znaków BEM (do tego nadal potrzebny jest preprocesor).

Migracja z Sass

Większość składni zagnieżdżania Sass jest identyczna z natywnym zagnieżdżaniem CSS. Wyjątkiem jest konkatenacja ciągów znaków &-modifier, której natywny CSS nie obsługuje. Podczas migracji należy wyszukać wzorce &- lub &__ i spłaszczyć tylko te konkretne reguły, zachowując pozostałe zagnieżdżenia.

Obsługa przeglądarek

Natywne zagnieżdżanie CSS jest obsługiwane w Chrome 112+, Firefox 117+ i Safari 16.5+. W przypadku starszych przeglądarek można użyć PostCSS wraz z postcss-nesting, aby podczas budowania przekształcać natywną składnię zagnieżdżania w płaski CSS — dzięki temu można już teraz pisać w natywnym zagnieżdżaniu.

DevTools i zagnieżdżanie

Chrome DevTools wyświetla zagnieżdżone reguły w panelu Styles w ich zagnieżdżonej postaci. Kliknięcie zagnieżdżonej reguły przenosi do właściwego miejsca w kodzie źródłowym w panelu Sources. Debugowanie zagnieżdżonego CSS jest równie przejrzyste jak debugowanie płaskiego CSS w nowoczesnych DevTools.

Sprawdzenie wiedzy

Jaka jest różnica między zagnieżdżaniem z selektorem & a zagnieżdżaniem bez niego?

Podsumowanie

Natywne zagnieżdżanie CSS umożliwia stosowanie składni zagnieżdżonej podobnej do Sass w zwykłym CSS. Selektor & tworzy selektory złożone dla pseudoklas, pseudoelementów i modyfikatorów. Zagnieżdżone zapytania @media umieszczają style responsywne obok elementów, których dotyczą. PostCSS przekształca natywne zagnieżdżanie na potrzeby starszych przeglądarek, umożliwiając stopniowe wdrażanie tej funkcji już teraz.

Często zadawane pytania

Czy lekcja „Natywne zagnieżdżanie CSS” jest bezpłatna?

Tak — pełny tekst „Natywne zagnieżdżanie CSS” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu CSS Academy, przejdź na CoddyKit PRO. Kurs CSS Academy zawiera 4 lekcji w sumie.

Co nauczysz się w „Natywne zagnieżdżanie CSS”?

Pisz zagnieżdżone reguły CSS bez preprocesora, korzystając ze specyfikacji natywnego zagnieżdżania CSS. Ćwiczysz CSS Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć CSS Academy?

Nie wymagamy żadnego doświadczenia. CSS Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 1 z 4.

Ile czasu zajmuje lekcja „Natywne zagnieżdżanie CSS”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji CSS Academy?

Tak. Każda lekcja CSS Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. Natywne zagnieżdżanie CSS
  2. Pseudoklasa relacyjna :has()
  3. @scope dla stylów o ograniczonym zakresie
  4. View Transitions API
← Powrót do CSS Academy