CSS Academy · Oppitunti

Natiivi CSS-sisäkkäisyys

Kirjoita sisäkkäisiä CSS-sääntöjä ilman esikääntäjää natiivin CSS-sisäkkäisyyden määrityksen avulla.

Oppitunti 1/413 vaihetta

Natiivi CSS-sisäkkäisyys on ilmainen CSS Academy-oppitunti CoddyKitissä. Tämä on oppitunti 1/4. Voit lukea koko oppitunnin alta ilmaiseksi ja harjoitella sen jälkeen käytännössä selaimessa sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla. Oppitunti kuuluu CSS Academy-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. CSS Academy-kurssilla on yhteensä 4 oppituntia.

Mitä on CSS:n sisäkkäisyys?

Natiivi CSS Nesting (Baseline 2024, kaikki nykyaikaiset selaimet) mahdollistaa CSS-sääntöjen kirjoittamisen toisten sääntöjen sisään. Syntaksi vastaa aiemmin vain Sass- ja Less-esikääntäjissä käytettävissä ollutta syntaksia. Sisäkkäiset säännöt perivät automaattisesti isäntävalitsimen kontekstin.

Sisäkkäisyyden perussyntaksi

Lapsivalitsimet kirjoitetaan isäntäsäännön lohkon sisään. Selain yhdistää isäntä- ja lapsivalitsimet automaattisesti. & eli sisäkkäisyysvalitsin viittaa eksplisiittisesti isäntävalitsimeen muokkaimia ja näennäisluokkia varten.

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

Sisäkkäisyysvalitsin &

& edustaa sisäkkäisissä säännöissä eksplisiittisesti isäntävalitsinta. Sitä käytetään näennäisluokkiin (&:hover), näennäiselementteihin (&::before), muokkainluokkiin (&.active) ja attribuuttivalitsimiin (&[disabled]). Ilman &-merkkiä sisäkkäiset säännöt muodostavat jälkeläisvalitsimia.

Näennäiselementtien sisäkkäisyys

Näennäiselementtien säännöt voidaan sisällyttää luontevasti isäntäelementin sisään: .button { &::before { content: ""; } &::after { content: ""; } }. Näin kaikki painikkeen tyylit pysyvät yhdessä, eikä tasaiseen CSS:ään tarvittavaa valitsinten toistoa tarvita.

At-sääntöjen sisäkkäisyys

Media queryt ja muut at-säännöt voidaan sisällyttää sääntöjen sisään (Chrome 112+, Firefox 117+): .card { padding: 1rem; @media (min-width: 768px) { padding: 2rem; } }. Responsiiviset tyylit pysyvät niitä käyttävän elementin yhteydessä sen sijaan, että ne sijoitettaisiin erilliseen media query -lohkoon tiedoston loppuun.

Valitsimen spesifisyys

Sisäkkäisyys ei muuta spesifisyyden sääntöjä — yhdistetyllä valitsimella on sama spesifisyys kuin tasaiseen CSS:ään kirjoitetulla valitsimella. .card .title-valitsimella on sisäkkäisenä tai tasaisena kirjoitettuna sama spesifisyys (0,2,0). Sisäkkäisyys helpottaa syntaksia, mutta ei muuta spesifisyyttä.

Implisiittinen jälkeläisvalitsin ja eksplisiittinen &

Sisäkkäinen valitsin ilman &-merkkiä muodostaa jälkeläisvalitsimen: .card { .title {} } kääntyy muotoon .card .title. Kun käytetään &-merkkiä: .card { &.active {} } kääntyy muotoon .card.active (välilyöntiä ei ole — kyseessä on muokkainluokka, ei jälkeläinen).

BEM ja natiivi sisäkkäisyys

Natiivi sisäkkäisyys ei sovellu ihanteellisesti BEM:iin — .block__element- ja .block--modifier-valitsimet ovat merkkijonoja, eikä sisäkkäisyys voi muodostaa niitä pelkällä &-merkillä. Sisäkkäisyyttä kannattaa käyttää näennäisluokkiin ja sisäkkäisiin komponenttirakenteisiin BEM-merkkijonojen yhdistämisen sijaan, sillä se vaatii edelleen esikääntäjän.

Sassista siirtyminen

Useimmat Sass-sisäkkäisyyden syntaksit ovat identtisiä natiivin CSS-sisäkkäisyyden kanssa. Poikkeuksena Sass sallii &-modifier-merkkijonojen yhdistämisen, mitä natiivi CSS ei tue. Siirtyminen kannattaa aloittaa tarkistamalla &-- ja &__-mallit ja tasoittamalla kyseiset säännöt, mutta säilyttämällä muu sisäkkäisyys.

Selainyhteensopivuus

Natiivi CSS Nesting on tuettu Chrome-versiosta 112, Firefox-versiosta 117 ja Safari-versiosta 16.5 alkaen. Vanhempia selaimia varten PostCSS:n postcss-nesting-laajennus muuntaa natiivin sisäkkäisyyden syntaksin tasaiseksi CSS:ksi koontivaiheen aikana, joten natiivia sisäkkäisyyttä voi käyttää koodin kirjoittamiseen jo nyt.

DevTools ja sisäkkäisyys

Chrome DevTools näyttää sisäkkäiset säännöt Styles-paneelissa sisäkkäisessä muodossaan. Sisäkkäistä sääntöä napsauttamalla siirrytään oikeaan lähdekoodin kohtaan Sources-paneelissa. Sisäkkäisen CSS:n vianmääritys on nykyaikaisissa DevTools-työkaluissa yhtä selkeää kuin tasaisen CSS:n vianmääritys.

Tietotesti

Miten sisäkkäisyys &-valitsimen kanssa eroaa sisäkkäisyydestä ilman sitä?

Yhteenveto

Natiivi CSS Nesting mahdollistaa Sass-tyylisen sisäkkäisen syntaksin tavallisessa CSS:ssä. &-valitsin muodostaa yhdistelmävalitsimia näennäisluokkia, näennäiselementtejä ja muokkaimia varten. Sisäkkäiset @media-queryt pitävät responsiiviset tyylit yhdessä niitä käyttävien elementtien kanssa. PostCSS muuntaa natiivin sisäkkäisyyden vanhempia selaimia varten, joten ominaisuus voidaan ottaa asteittain käyttöön jo nyt.

Aloita maksutta

Opi CSS tekoälytuutorin avulla — ilmaiseksi

Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.

Kurssit
40
Oppitunnit
159

Usein kysytyt kysymykset

Onko oppitunti ”Natiivi CSS-sisäkkäisyys” ilmainen?

Kyllä – oppitunnin ”Natiivi CSS-sisäkkäisyys” koko tekstin voi lukea täällä verkossa ilmaiseksi. Jos haluat harjoitella interaktiivisesti sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla sekä avata koko CSS Academy-kurssin, päivitä CoddyKit PROhon. CSS Academy-kurssilla on yhteensä 4 oppituntia.

Mitä opin oppitunnilla ”Natiivi CSS-sisäkkäisyys”?

Kirjoita sisäkkäisiä CSS-sääntöjä ilman esikääntäjää natiivin CSS-sisäkkäisyyden määrityksen avulla. Harjoittelet CSS Academy-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.

Tarvitsenko kokemusta aloittaakseni CSS Academy-opiskelun?

Aiempi kokemus ei ole tarpeen. CoddyKitin CSS Academy-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 1/4.

Kuinka kauan ”Natiivi CSS-sisäkkäisyys”-oppitunnin suorittaminen kestää?

Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.

Voinko kirjoittaa ja suorittaa koodia tällä CSS Academy-oppitunnilla?

Kyllä. Jokainen CSS Academy-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.

Kaikki tämän kurssin oppitunnit

  1. Natiivi CSS-sisäkkäisyys
  2. :has()-relaatiopseudoluokka
  3. @scope rajattuja tyylejä varten
  4. View Transitions API
← Takaisin: CSS Academy