Lietuvių

Ištirkite CSS @property taisyklę ir sužinokite, kaip apibrėžti individualių savybių tipus, leidžiančius kurti pažangias animacijas, patobulintas temas ir tvirtesnę CSS architektūrą.

CSS @property taisyklė: atskleidžiant individualių savybių tipų apibrėžimo galią

CSS pasaulis nuolat tobulėja, o vienas iš naujausių ir galingiausių papildymų yra @property taisyklė. Ši taisyklė suteikia mechanizmą individualių savybių tipams apibrėžti, suteikiant daugiau kontrolės ir lankstumo jūsų CSS bei atveriant duris sudėtingesnėms animacijoms, patobulintoms temų kūrimo galimybėms ir tvirtesnei bendrai CSS architektūrai. Šiame straipsnyje gilinsimės į @property taisyklę, nagrinėsime jos sintaksę, galimybes ir praktinius pritaikymus, atsižvelgiant į pasaulinę auditoriją.

Kas yra CSS individualios savybės (kintamieji)?

Prieš gilinantis į @property taisyklę, būtina suprasti CSS individualias savybes, dar vadinamas CSS kintamaisiais. Individualios savybės leidžia apibrėžti pakartotinai naudojamas reikšmes jūsų CSS, todėl jūsų stilių aprašai tampa lengviau prižiūrimi ir atnaujinami. Jos deklaruojamos naudojant --kintamojo-pavadinimas sintaksę ir pasiekiamos naudojant var() funkciją.

Pavyzdys:


:root {
  --primary-color: #007bff; /* Globaliai apibrėžta pagrindinė spalva */
  --secondary-color: #6c757d;
}

a {
  color: var(--primary-color);
  text-decoration: none;
}

button {
  background-color: var(--primary-color);
  color: white;
  border: none;
  padding: 10px 20px;
}

Šiame pavyzdyje --primary-color ir --secondary-color yra individualios savybės. Jei jums reikia pakeisti pagrindinę spalvą visoje svetainėje, tereikia ją atnaujinti vienoje vietoje – :root selektoriuje.

Pagrindinių individualių savybių apribojimas

Nors individualios savybės yra nepaprastai naudingos, jos turi didelį apribojimą: iš esmės jos traktuojamos kaip eilutės. Tai reiškia, kad CSS iš prigimties nežino, kokio tipo reikšmę laiko individuali savybė (pvz., skaičių, spalvą, ilgį). Nors naršyklė bando nustatyti tipą, tai gali sukelti netikėtą elgesį, ypač kai kalbama apie animacijas ir perėjimus. Pavyzdžiui, bandymas animuoti individualią savybę, kuri laiko spalvą, gali neveikti taip, kaip tikėtasi, arba gali neveikti nuosekliai skirtingose naršyklėse.

Pristatome @property taisyklę

@property taisyklė išsprendžia šį apribojimą, leisdama jums aiškiai apibrėžti individualios savybės tipą, sintaksę, pradinę reikšmę ir paveldėjimo elgesį. Tai suteikia daug tvirtesnį ir nuspėjamesnį būdą dirbti su individualiomis savybėmis, ypač jas animuojant ar naudojant perėjimus.

@property taisyklės sintaksė

Pagrindinė @property taisyklės sintaksė yra tokia:


@property --property-name {
  syntax: <syntax-value>;
  inherits: <boolean>;
  initial-value: <value>;
}

Išskaidykime kiekvieną taisyklės dalį:

Praktiniai @property taisyklės pavyzdžiai

Pažvelkime į keletą praktinių pavyzdžių, iliustruojančių, kaip @property taisyklę galima naudoti realaus pasaulio scenarijuose.

1 pavyzdys: individualios spalvos animavimas

Spalvų animavimas naudojant standartinius CSS perėjimus kartais gali būti sudėtingas. @property taisyklė tai labai palengvina.


@property --brand-color {
  syntax: <color>;
  inherits: false;
  initial-value: #007bff;
}

:root {
  --brand-color: #007bff;
}

.element {
  background-color: var(--brand-color);
  transition: --brand-color 0.5s ease-in-out;
}

.element:hover {
  --brand-color: #28a745; /* Užvedus pelę, pasikeičia į žalią spalvą */
}

Šiame pavyzdyje apibrėžiame individualią savybę pavadinimu --brand-color ir nurodome, kad jos sintaksė yra <color>. Taip pat nustatome pradinę reikšmę #007bff (mėlynos atspalvis). Dabar, užvedus pelę ant .element, fono spalva sklandžiai pereina iš mėlynos į žalią.

2 pavyzdys: individualaus ilgio animavimas

Ilgio (pvz., pločio, aukščio) animavimas yra dar vienas įprastas @property taisyklės naudojimo atvejis.


@property --element-width {
  syntax: <length>;
  inherits: false;
  initial-value: 100px;
}

.element {
  width: var(--element-width);
  transition: --element-width 0.3s ease-out;
}

.element:hover {
  --element-width: 200px;
}

Čia apibrėžiame individualią savybę pavadinimu --element-width ir nurodome, kad jos sintaksė yra <length>. Pradinė reikšmė nustatyta į 100px. Užvedus pelę ant .element, jo plotis sklandžiai pereina nuo 100px iki 200px.

3 pavyzdys: individualios progreso juostos kūrimas

@property taisyklė gali būti naudojama kuriant individualias progreso juostas su didesne animacijos kontrole.


@property --progress {
  syntax: <number>;
  inherits: false;
  initial-value: 0;
}

.progress-bar {
  width: 200px;
  height: 10px;
  background-color: #eee;
}

.progress-bar::before {
  content: '';
  display: block;
  width: calc(var(--progress) * 1%);
  height: 100%;
  background-color: #007bff;
  transition: --progress 0.3s ease-in-out;
}

.progress-bar[data-progress="50"]::before {
  --progress: 50;
}

.progress-bar[data-progress="100"]::before {
  --progress: 100;
}

Šiame pavyzdyje apibrėžiame individualią savybę pavadinimu --progress, kuri atspindi progreso procentą. Tada naudojame calc() funkciją, kad apskaičiuotume progreso juostos plotį pagal --progress reikšmę. Nustatydami data-progress atributą .progress-bar elementui, galime kontroliuoti progreso lygį.

4 pavyzdys: temų kūrimas su individualiomis savybėmis

@property taisyklė pagerina temų kūrimą, suteikdama patikimesnį ir nuspėjamesnį elgesį pereinant tarp skirtingų temų. Apsvarstykite šį pavyzdį paprastam tamsios/šviesios temos perjungimui:


@property --bg-color {
    syntax: <color>;
    inherits: false;
    initial-value: #ffffff; /* Šviesios temos numatytoji reikšmė */
}

@property --text-color {
    syntax: <color>;
    inherits: false;
    initial-value: #000000; /* Šviesios temos numatytoji reikšmė */
}

:root {
    --bg-color: #ffffff;
    --text-color: #000000;
    transition: --bg-color 0.3s, --text-color 0.3s;
}

body {
    background-color: var(--bg-color);
    color: var(--text-color);
}

.dark-theme {
    --bg-color: #333333; /* Tamsi tema */
    --text-color: #ffffff;
}

Apibrėžus --bg-color ir --text-color su @property taisykle, perėjimas tarp temų bus sklandesnis ir patikimesnis, palyginti su pagrindinių individualių savybių naudojimu be apibrėžtų tipų.

Naršyklių suderinamumas

2023 m. pabaigoje @property taisyklės palaikymas moderniose naršyklėse, įskaitant „Chrome“, „Firefox“, „Safari“ ir „Edge“, yra gana geras. Tačiau visada verta patikrinti naujausią naršyklių suderinamumo informaciją svetainėse, tokiose kaip „Can I Use“ (caniuse.com), kad įsitikintumėte, jog jūsų tikslinė auditorija turi tinkamą šios funkcijos palaikymą.

Jei jums reikia palaikyti senesnes naršykles, kurios nepalaiko @property taisyklės, galite naudoti funkcijos aptikimą su „JavaScript“ ir pateikti atsarginius sprendimus. Pavyzdžiui, galite naudoti „JavaScript“, kad nustatytumėte, ar naršyklė palaiko CSS.registerProperty („JavaScript“ API, susietą su @property), ir tada taikyti alternatyvius stilius, jei ji nepalaikoma.

Geriausios praktikos naudojant @property taisyklę

Štai keletas geriausių praktikų, kurių reikėtų nepamiršti naudojant @property taisyklę:

Prieinamumo aspektai

Naudojant @property taisyklę, svarbu atsižvelgti į prieinamumą. Užtikrinkite, kad jūsų animacijos ir perėjimai nebūtų per daug blaškantys ar dezorientuojantys vartotojams su kognityvinėmis negaliomis. Venkite naudoti animacijų, kurios mirga ar blyksi, nes tai gali sukelti priepuolius kai kuriems asmenims.

Taip pat įsitikinkite, kad jūsų spalvų pasirinkimas užtikrina pakankamą kontrastą vartotojams su regėjimo sutrikimais. Galite naudoti įrankius, tokius kaip „WebAIM Contrast Checker“, kad patikrintumėte, ar jūsų spalvų deriniai atitinka prieinamumo gaires.

Globalūs aspektai

Kuriant svetaines ir programas pasaulinei auditorijai, svarbu atsižvelgti į kultūrinius skirtumus ir lokalizaciją. Štai keletas dalykų, kuriuos reikia turėti omenyje naudojant @property taisyklę globaliame kontekste:

CSS individualių savybių ir @property taisyklės ateitis

@property taisyklė yra reikšmingas žingsnis į priekį CSS evoliucijoje. Kadangi naršyklių palaikymas toliau gerėja, galime tikėtis dar daugiau novatoriškų šios galingos funkcijos panaudojimo būdų. Ateityje galime pamatyti naujų sintaksės reikšmių, pridėtų prie @property taisyklės, kad būtų palaikomi sudėtingesni duomenų tipai, pavyzdžiui, masyvai ir objektai. Taip pat galime pamatyti geresnę integraciją su „JavaScript“, leidžiančią kūrėjams dinamiškai kurti ir manipuliuoti individualiomis savybėmis vykdymo metu.

Individualių savybių ir @property taisyklės derinys atveria kelią modulinei, lengviau prižiūrimai ir galingesnei CSS architektūrai. Priimdami šias funkcijas, kūrėjai gali sukurti sudėtingesnes ir patrauklesnes interneto patirtis, kurios yra prieinamos vartotojams visame pasaulyje.

Išvada

@property taisyklė suteikia žiniatinklio kūrėjams galimybę apibrėžti individualių savybių tipus, atveriant naujas galimybes animacijoms, temų kūrimui ir bendrai CSS architektūrai. Suprasdami jos sintaksę, galimybes ir geriausias praktikas, galite pasinaudoti šia galinga funkcija, kad sukurtumėte tvirtesnes, lengviau prižiūrimas ir vizualiai patrauklesnes interneto programas. Augant naršyklių palaikymui, @property taisyklė neabejotinai taps esminiu įrankiu šiuolaikinio žiniatinklio kūrėjo įrankių rinkinyje. Priimkite šią technologiją, eksperimentuokite su jos galimybėmis ir atskleiskite visą CSS individualių savybių potencialą.

Papildoma literatūra