Eesti

Avastage CSS @when reeglit – võimsat funktsiooni, mis võimaldab tingimuslikku stiili rakendamist brauseri toe, vaateakna suuruse ja muu põhjal. Õppige praktiliste näidetega.

CSS @when Reegel: Tingimusliku Stiili Rakendamise Valdamine

CSS-i maailm areneb pidevalt, pakkudes arendajatele võimsamaid ja paindlikumaid viise veebilehtede stiilimiseks. Üks selline populaarsust koguv funktsioon on @when reegel, tuntud ka kui CSS Conditional Rules Module Level 1. See reegel võimaldab teil rakendada CSS-stiile tingimuslikult, lähtudes konkreetsete tingimuste täitmisest. See on võimas tööriist reageeriva disaini, funktsioonide tuvastamise ja vastupidavamate ning kohandatavamate stiililehtede loomiseks.

Mis on CSS @when Reegel?

@when reegel on tingimuslik at-reegel CSS-is, mis võimaldab teil määratleda stiile, mida rakendatakse ainult siis, kui teatud tingimused on tõesed. Mõelge sellest kui if-lausest oma CSS-i jaoks. Erinevalt meediapäringutest, mis keskenduvad peamiselt vaateakna omadustele (ekraani suurus, orientatsioon jne), pakub @when üldisemat ja laiendatavamat viisi tingimusliku stiilimise käsitlemiseks. See laiendab olemasolevaid tingimuslikke at-reegleid nagu @supports ja @media.

@when Kasutamise Peamised Eelised

@when Reegli Süntaks

The basic syntax of the @when rule is as follows:
@when <condition> {
  /* CSS-reeglid, mida rakendada, kui tingimus on tõene */
}

<condition> võib olla mis tahes kehtiv tõeväärtusavaldis, mis hindab tõeseks või vääraks. See avaldis hõlmab sageli:

Praktilised Näited @when Kasutamisest

Uurime mõningaid praktilisi näiteid, et illustreerida @when reegli võimsust ja mitmekülgsust.

1. Reageeriv Disain @when ja Meediapäringutega

Kõige levinum @when kasutusjuht on reageeriv disain, kus kohandate stiile ekraani suuruse põhjal. Kuigi meediapäringud suudavad seda ka iseseisvalt saavutada, pakub @when struktureeritumat ja loetavamat lähenemist, eriti keerukate tingimustega tegelemisel.

@when (min-width: 768px) and (max-width: 1023px) {
  body {
    font-size: 18px;
    line-height: 1.6;
  }
  .container {
    width: 720px;
    margin: 0 auto;
  }
}

Selles näites rakendatakse @when plokis olevaid stiile ainult siis, kui ekraani laius on vahemikus 768px ja 1023px (tüüpiline tahvelarvuti suurus). See pakub selget ja lühikest viisi stiilide määratlemiseks konkreetsete vaateakna vahemike jaoks.

Rahvusvahelistamise Märkus: Reageeriv disain on globaalsele publikule ülioluline. Arvestage erinevate ekraanisuurustega erinevates piirkondades. Näiteks on mobiilikasutus mõnes riigis suurem, mis muudab mobiil-eelkõige disaini veelgi olulisemaks.

2. Funktsioonide Tuvastamine @when ja @supports abil

@when saab kombineerida @supports-iga, et rakendada stiile ainult siis, kui brauser toetab konkreetset CSS-funktsiooni. See võimaldab teil oma veebisaiti järk-järgult täiustada, pakkudes paremat kogemust kaasaegsete brauseritega kasutajatele, säilitades samal ajal ühilduvuse vanematega.

@when supports(display: grid) {
  .container {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
    grid-gap: 20px;
  }
}

@when not supports(display: grid) {
  .container {
    /* Varustiilid brauseritele, mis ei toeta grid'i */
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
  }
  .item {
    width: calc(50% - 10px); /* Kohanda laiust vanematele brauseritele */
  }
}

Siin kasutame @supports-i, et kontrollida, kas brauser toetab CSS Grid Layout'i. Kui toetab, rakendame .container-ile grid-põhiseid stiile. Kui ei, pakume varustiile flexboxi abil, et tagada sarnane paigutus vanemates brauserites.

Globaalse Juurdepääsetavuse Märkus: Funktsioonide tuvastamine on juurdepääsetavuse seisukohast oluline. Vanematel brauseritel võib puududa tugi uuematele ARIA atribuutidele või semantilistele HTML5 elementidele. Pakkuge sobivaid varulahendusi, et tagada sisu juurdepääsetavus.

3. Meediapäringute ja Funktsioonipäringute Kombineerimine

@when tegelik võimsus tuleneb selle võimest kombineerida meediapäringuid ja funktsioonipäringuid, et luua keerukamaid ja nüansseeritumaid tingimuslikke stiilireegleid.

@when (min-width: 768px) and supports(backdrop-filter: blur(10px)) {
  .modal {
    background-color: rgba(255, 255, 255, 0.8);
    backdrop-filter: blur(10px);
  }
}

Selles näites on .modal elemendil hägune taust ainult siis, kui ekraani laius on vähemalt 768px ja brauser toetab backdrop-filter omadust. See võimaldab teil luua visuaalselt köitvaid efekte kaasaegsetes brauserites, vältides samal ajal võimalikke jõudlusprobleeme või renderdusvigu vanemates.

4. Stiilimine Kohandatud Omaduste (CSS Muutujate) Põhjal

@when saab kasutada ka koos CSS-i kohandatud omadustega (tuntud ka kui CSS-muutujad), et luua dünaamilist ja olekupõhist stiilimist. Saate kasutada JavaScripti kohandatud omaduse väärtuse värskendamiseks ja seejärel kasutada @when-i erinevate stiilide rakendamiseks selle väärtuse põhjal.

Esmalt määratlege kohandatud omadus:

:root {
  --theme-color: #007bff; /* Vaikimisi teema värv */
  --is-dark-mode: false;
}

Seejärel kasutage @when-i stiilide rakendamiseks kohandatud omaduse väärtuse põhjal:

@when var(--is-dark-mode) = true {
  body {
    background-color: #333;
    color: #fff;
  }
  a {
    color: #ccc;
  }
}

Lõpuks kasutage JavaScripti, et lülitada --is-dark-mode kohandatud omaduse väärtust:

document.getElementById('darkModeToggle').addEventListener('click', function() {
  document.documentElement.style.setProperty('--is-dark-mode', this.checked);
});

See võimaldab kasutajatel vahetada heleda ja tumeda teema vahel, kusjuures CSS värskendub dünaamiliselt vastavalt kohandatud omaduse väärtusele. Pange tähele, et CSS-muutujate otsene võrdlus @when-is ei pruugi olla kõigis brauserites universaalselt toetatud. Selle asemel peate võib-olla kasutama lahendust meediapäringuga, mis kontrollib nullist erinevat väärtust:

@when ( --is-dark-mode > 0 ) { ... }

Siiski veenduge, et kohandatud omadusel oleks selle toimimiseks numbriline väärtus.

Juurdepääsetavuse Märkus: Alternatiivsete teemade (nt tume režiim) pakkumine on juurdepääsetavuse seisukohast ülioluline. Nägemispuudega kasutajad võivad kasu saada kõrge kontrastsusega teemadest. Veenduge, et teie teemavahetus oleks juurdepääsetav klaviatuuri ja ekraanilugejate kaudu.

5. Stiilimine Andmeatribuutide Põhjal

Saate kasutada @when-i ka andmeatribuutidega, et stiilida elemente nende andmeväärtuste põhjal. See võib olla kasulik dünaamiliste liideste loomisel, kus elementide välimus muutub vastavalt kasutaja interaktsioonile või andmete värskendustele.

Näiteks oletame, et teil on ülesannete loend ja igal ülesandel on data-status atribuut, mis näitab selle olekut (nt "todo", "in-progress", "completed"). Saate kasutada @when-i iga ülesande erinevaks stiilimiseks vastavalt selle olekule.

[data-status="todo"] {
  /* Vaikimisi stiilid todo ülesannetele */
  color: #333;
}

@when attribute(data-status string equals "in-progress") {
  [data-status="in-progress"] {
    color: orange;
    font-style: italic;
  }
}

@when attribute(data-status string equals "completed") {
  [data-status="completed"] {
    color: green;
    text-decoration: line-through;
  }
}

Märkus: attribute() testtingimuse tugi võib olla piiratud või mitte täielikult rakendatud kõigis brauserites praegu. Testige alati põhjalikult.

Brauseri Ühilduvus ja Polüfillid

2024. aasta lõpu seisuga on brauseritugi @when reeglile endiselt arenemas. Kuigi paljud kaasaegsed brauserid toetavad põhifunktsionaalsust, ei pruugi mõned vanemad brauserid seda teha. Seetõttu on ülioluline kontrollida ühilduvustabeleid ja kasutada vajadusel sobivaid varulahendusi või polüfille.

Konsulteerige alati ressurssidega nagu Can I use..., et kontrollida @when ja sellega seotud funktsioonide praegust brauseritoe staatust.

Parimad Praktikad @when Kasutamiseks

Kokkuvõte

@when reegel on võimas täiendus CSS-i tööriistakasti, pakkudes arendajatele paindlikumat ja väljendusrikkamat viisi stiilide tingimuslikuks rakendamiseks. Kombineerides seda meediapäringute, funktsioonipäringute ja CSS-i kohandatud omadustega, saate luua vastupidavamaid, kohandatavamaid ja hooldatavamaid stiililehti. Kuigi brauseritugi on endiselt arenemas, on @when funktsioon, mida tasub uurida ja oma kaasaegsesse veebiarenduse töövoogu lisada.

Kuna veeb areneb jätkuvalt, on selliste funktsioonide nagu @when valdamine hädavajalik kaasahaaravate, juurdepääsetavate ja jõudluspõhiste kogemuste loomiseks kasutajatele üle maailma. Võtke omaks tingimusliku stiilimise jõud ja avage uusi võimalusi oma CSS-arenduses.

CSS @when Reegel: Tingimusliku Stiili Rakendamise Valdamine | MLOG