Lietuvių

Atraskite CSS įdėjimo galią, kuri į grynąjį CSS įneša Sass panašią sintaksę. Sužinokite, kaip ši funkcija supaprastina stilių kūrimą, gerina kodo skaitomumą ir palengvina palaikymą interneto kūrėjams.

CSS įdėjimas (Nesting): Sass panaši sintaksė grynajame CSS pasaulio programuotojams

Daugelį metų interneto kūrėjai pasikliovė CSS pirminio apdorojimo įrankiais (preprocesoriais), tokiais kaip Sass, Less ir Stylus, kad įveiktų standartinio CSS apribojimus. Viena iš labiausiai mėgstamų šių preprocesorių savybių yra įdėjimas (nesting), leidžiantis rašyti CSS taisykles kitų CSS taisyklių viduje, taip sukuriant intuityvesnę ir tvarkingesnę struktūrą. Dabar, tobulėjant CSS standartams, pagaliau atsirado grynasis CSS įdėjimas, siūlantis galingą alternatyvą be išorinių įrankių poreikio.

Kas yra CSS įdėjimas (Nesting)?

CSS įdėjimas – tai savybė, leidžianti įdėti CSS taisykles į kitas CSS taisykles. Tai reiškia, kad galite nukreipti stilius į konkrečius elementus ir jų būsenas tėvinio selektoriaus viduje, todėl jūsų CSS tampa glaustesnis ir lengviau skaitomas. Tai atspindi jūsų HTML hierarchinę struktūrą, pagerina palaikomumą ir sumažina pasikartojimą. Įsivaizduokite, kad turite naršymo meniu. Tradiciškai CSS rašytumėte taip:


.navbar {
  background-color: #f0f0f0;
  padding: 10px;
}

.navbar a {
  color: #333;
  text-decoration: none;
}

.navbar a:hover {
  color: #007bff;
}

Naudojant CSS įdėjimą, tą patį rezultatą galite pasiekti struktūrizuotesniu būdu:


.navbar {
  background-color: #f0f0f0;
  padding: 10px;

  a {
    color: #333;
    text-decoration: none;

    &:hover {
      color: #007bff;
    }
  }
}

Atkreipkite dėmesį, kaip a ir a:hover taisyklės yra įdėtos į .navbar taisyklę. Tai aiškiai parodo, kad šie stiliai taikomi tik nuorodų žymoms (anchor tags) naršymo juostos viduje. Simbolis & nurodo tėvinį selektorių (.navbar) ir yra būtinas pseudo-klasėms, tokioms kaip :hover. Šis metodas puikiai tinka įvairiems projektams, nuo paprastų svetainių iki sudėtingų interneto programų, kurias naudoja pasaulinė auditorija.

Grynojo CSS įdėjimo privalumai

Grynojo CSS įdėjimo įvedimas suteikia interneto kūrėjams daugybę privalumų:

Kaip naudoti CSS įdėjimą

CSS įdėjimas naudoja paprastą sintaksę, kuri remiasi esamomis CSS taisyklėmis. Štai pagrindinių sąvokų apžvalga:

Pagrindinis įdėjimas

Galite įdėti bet kokią CSS taisyklę į kitą CSS taisyklę. Pavyzdžiui:


.container {
  width: 80%;
  margin: 0 auto;

  h2 {
    font-size: 2em;
    color: #333;
  }
}

Šis kodas stilizuoja visus h2 elementus, esančius .container elemento viduje.

& selektoriaus naudojimas

Selektorius & atstoja tėvinį selektorių. Jis yra būtinas pseudo-klasėms, pseudo-elementams ir kombinatoriams. Pavyzdžiui:


button {
  background-color: #007bff;
  color: #fff;
  padding: 10px 20px;
  border: none;
  cursor: pointer;

  &:hover {
    background-color: #0056b3;
  }

  &::after {
    content: '';
    display: block;
    width: 100%;
    height: 2px;
    background-color: #0056b3;
  }
}

Šiame pavyzdyje &:hover taiko stilius, kai pelės žymeklis yra ant mygtuko, o &::after prideda pseudo-elementą po mygtuko. Atkreipkite dėmesį į "&" naudojimo svarbą nurodant tėvinį selektorių.

Įdėjimas su medijos užklausomis (Media Queries)

Taip pat galite įdėti medijos užklausas į CSS taisykles, kad sukurtumėte adaptyvų dizainą:


.card {
  width: 300px;
  margin: 20px;
  border: 1px solid #ccc;

  @media (max-width: 768px) {
    width: 100%;
    margin: 10px 0;
  }
}

Šis kodas koreguoja .card elemento plotį ir paraštę, kai ekrano plotis yra mažesnis nei 768px. Tai galingas įrankis kuriant svetaines, kurios prisitaiko prie skirtingų ekrano dydžių, naudojamų pasaulinės auditorijos.

Įdėjimas su kombinatoriais

CSS kombinatoriai (pvz., >, +, ~) gali būti naudojami įdėtose taisyklėse, norint nurodyti konkrečius ryšius tarp elementų:


.article {
  h2 {
    margin-bottom: 10px;
  }

  > p {
    line-height: 1.5;
  }

  + .sidebar {
    margin-top: 20px;
  }
}

Šiame pavyzdyje > p nurodo tiesioginius .article elemento vaikinius pastraipų elementus, o + .sidebar nurodo iškart po jo einantį brolišką elementą su klase .sidebar.

Naršyklių palaikymas ir polifilai (Polyfills)

2023 m. pabaigoje CSS įdėjimas sulaukė didelio populiarumo ir yra palaikomas daugumos modernių naršyklių, įskaitant Chrome, Firefox, Safari ir Edge. Vis dėlto, svarbu patikrinti dabartinę naršyklių palaikymo matricą tokiuose resursuose kaip Can I use, kad užtikrintumėte suderinamumą su jūsų tiksline auditorija. Senesnėms naršyklėms, kurios natūraliai nepalaiko CSS įdėjimo, galite naudoti polifilą (polyfill), pavyzdžiui, PostCSS Nested įskiepį, kad paverstumėte savo įdėtą CSS į suderinamą kodą.

Geriausios CSS įdėjimo praktikos

Nors CSS įdėjimas siūlo daugybę privalumų, svarbu jį naudoti apdairiai, kad nesukurtumėte pernelyg sudėtingo ar sunkiai prižiūrimo kodo. Štai keletas geriausių praktikų, kurių reikėtų laikytis:

CSS įdėjimo pavyzdžiai praktikoje

Panagrinėkime keletą praktinių pavyzdžių, kaip CSS įdėjimas gali būti naudojamas įvairiems vartotojo sąsajos komponentams stilizuoti:

Mygtukai


.button {
  padding: 10px 20px;
  border: none;
  border-radius: 5px;
  cursor: pointer;

  &.primary {
    background-color: #007bff;
    color: #fff;

    &:hover {
      background-color: #0056b3;
    }
  }

  &.secondary {
    background-color: #f0f0f0;
    color: #333;

    &:hover {
      background-color: #e0e0e0;
    }
  }
}

Šis kodas apibrėžia stilius bendrinei .button klasei, o tada naudoja įdėjimą, kad sukurtų pirminių ir antrinių mygtukų variantus.

Formos


.form-group {
  margin-bottom: 20px;

  label {
    display: block;
    margin-bottom: 5px;
  }

  input[type="text"],
  input[type="email"],
  textarea {
    width: 100%;
    padding: 10px;
    border: 1px solid #ccc;
    border-radius: 5px;
  }

  .error-message {
    color: red;
    margin-top: 5px;
  }
}

Šis kodas stilizuoja formos grupes, etiketes, įvesties laukus ir klaidų pranešimus formoje.

Naršymo meniu


.nav {
  list-style: none;
  margin: 0;
  padding: 0;

  li {
    display: inline-block;
    margin-right: 20px;

    a {
      text-decoration: none;
      color: #333;

      &:hover {
        color: #007bff;
      }
    }
  }
}

Šis kodas stilizuoja naršymo meniu, sąrašo elementus ir nuorodų žymas meniu viduje.

CSS įdėjimas prieš CSS preprocesorius

CSS įdėjimas keičia žaidimo taisykles interneto kūrėjams, kurie daugelį metų pasikliovė CSS preprocesoriais. Nors preprocesoriai siūlo platų funkcijų spektrą, įskaitant kintamuosius, priemaišas (mixins) ir funkcijas, grynasis CSS įdėjimas suteikia didelę dalį šių galimybių tiesiogiai naršyklėje. Štai palyginimas:

Savybė Grynasis CSS įdėjimas CSS preprocesoriai (pvz., Sass)
Įdėjimas Taip Taip
Kintamieji Individualizuotos savybės (CSS kintamieji) Taip
Priemaišos (Mixins) Ne (ribotas funkcionalumas su @property ir Houdini API) Taip
Funkcijos Ne (ribotas funkcionalumas su Houdini API) Taip
Operatoriai Ne Taip
Naršyklių palaikymas Modernios naršyklės Reikalingas kompiliavimas
Priklausomybė Jokios Reikalingas išorinis įrankis

Kaip matote, grynasis CSS įdėjimas suteikia galingą alternatyvą preprocesoriams pagrindiniams įdėjimo poreikiams. Nors preprocesoriai vis dar siūlo pažangias funkcijas, tokias kaip priemaišos ir funkcijos, atotrūkis mažėja. CSS individualizuotos savybės (kintamieji) taip pat suteikia galimybę pakartotinai naudoti reikšmes visuose jūsų stilių aprašuose.

CSS įdėjimo ateitis ir kas toliau

CSS įdėjimas yra tik vienas iš daugelio įdomių pokyčių CSS pasaulyje. CSS toliau tobulėjant, galime tikėtis dar galingesnių funkcijų, kurios supaprastins interneto kūrimą ir pagerins kodo kokybę. Technologijos, tokios kaip Houdini API, atveria kelią pažangesnėms stiliaus galimybėms, įskaitant individualizuotas savybes su turtingesnėmis tipų sistemomis, individualizuotas animacijas ir individualizuotus išdėstymo algoritmus. Šių naujų technologijų pritaikymas leis kūrėjams sukurti patrauklesnes ir interaktyvesnes interneto patirtis vartotojams visame pasaulyje. CSS darbo grupė nuolat ieško naujų būdų, kaip pagerinti kalbą ir patenkinti interneto kūrėjų poreikius.

Išvada

CSS įdėjimas yra reikšmingas žingsnis į priekį grynajam CSS, suteikiantis Sass panašios sintaksės privalumus platesnei auditorijai. Pagerindamas kodo skaitomumą, palengvindamas palaikymą ir sumažindamas kodo dubliavimą, CSS įdėjimas suteikia kūrėjams galimybę rašyti švaresnį, efektyvesnį ir labiau keičiamo dydžio CSS. Augant naršyklių palaikymui, CSS įdėjimas taps esminiu įrankiu kiekvieno interneto kūrėjo arsenale. Taigi, pasinaudokite CSS įdėjimo galia ir atraskite naują kūrybiškumo bei produktyvumo lygį savo interneto kūrimo projektuose! Ši nauja funkcija leis įvairių sričių ir įgūdžių lygio kūrėjams rašyti lengviau palaikomą ir suprantamesnį CSS, gerinant bendradarbiavimą ir trumpinant kūrimo laiką visame pasaulyje. CSS ateitis yra šviesi, o CSS įdėjimas yra puikus daromos pažangos pavyzdys.