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.
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.
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
- Natiivi CSS-sisäkkäisyys
- :has()-relaatiopseudoluokka
- @scope rajattuja tyylejä varten
- View Transitions API