Waarom u CSS-variabelen moet gebruiken

Schrijver: Monica Porter
Datum Van Creatie: 21 Maart 2021
Updatedatum: 16 Kunnen 2024
Anonim
Why You Should Be Using CSS Variables
Video: Why You Should Be Using CSS Variables

Inhoud

Het valt me ​​op dat er nog steeds CSS-puristen zijn die niet geloven dat ze een CSS-processor nodig hebben. Misschien ben jij een van hen? Misschien heb je al een proces uitgetekend waar je helemaal blij mee bent. Of misschien staat u aan de andere kant van die medaille: u gebruikt CSS-preprocessors (zoals Sass of Stylus) en ziet geen noodzaak voor native / browser-verwerkte CSS-variabelen. In dit artikel hoop ik de argumenten voor beide partijen te ontkrachten.

Componenten

Als je een applicatie thematiseert, je eigen aangepaste componenten maakt of zelfs componenten van anderen gebruikt, hoop je waarschijnlijk dat je deze modules een beetje kunt aanpassen zonder de originele code te hoeven wijzigen.

Laten we zeggen dat u een rastersysteem van Bootstrap gebruikt, maar de ontwerper heeft iets andere gootbreedtes in het raster verwerkt. Op dit moment heb je grofweg drie keuzes:

  1. Wijzig de Bootstrap CSS-code (waardoor toekomstige upgrades vrijwel onmogelijk worden zonder significante analyse)
  2. Overtuig de ontwerper om het raster aan te passen aan Bootstrap (of probeer het er langs te sluipen)
  3. Voeg alle onbewerkte Bootstrap Sass toe, neem het op in uw build-systeem en voeg uw eigen aangepaste variabelen toe

De derde keuze is voor velen de weg van de minste weerstand - maar gaandeweg wordt je build-systeem groter, langzamer en afhankelijker van het feit dat het hele team alles begrijpt wat er gaande is. (Hey, niets is perfect, toch?)


Gooi je bouwsysteem weg

Nu we het probleem een ​​beetje beter begrijpen, kunnen we beginnen te praten over waar CSS-variabelen zullen schitteren. Laten we eerst eens kijken naar de syntaxis van de CSS-variabele:

: root {--gutter-width: 1rem; }

Hier heb ik een variabele met de naam gedefinieerd breedte van de goot en zet het op 1rem. U zult zien dat de selector die ik heb gekozen, is :wortel wat in feite gelijk staat aan ’HTML’ (of het hoofd-SVG-knooppunt). Ik gebruik het om een ​​heel belangrijk aspect van CSS-variabelen te laten zien: de cascade. Ja, variabelen kunnen net als eigenschappen door de boom heen lopen!

Dus als ik een element elders in mijn stylesheet selecteer:

.my-module {margin-right: var (- goot-breedte); }

De breedte van de goot variabele cascades naar beneden vanaf het root-element. Stel dat ik de goot slechts in een bepaald gebied wil aanpassen? Gemakkelijk!

.my-module {--gutter-width: .5rem; margin-right: var (- goot-breedte); }

Ineens heb je geen complex bouwsysteem meer nodig. Strooi er gewoon een paar eenvoudige variabelen over en pas ze naar hartenlust aan. Het samenvoegen van een reeks wijzigingen is nog eenvoudiger als u zich realiseert dat elke browser die variabelen ondersteunt al heel lang CSS-calculatie heeft:


: root {--gutter-width: .5rem; } .col {--column-breedte: 4rem; width: calc (var (- kolombreedte) - var (- gootbreedte))}

In het bovenstaande voorbeeld hebben we de breedte van de .col selector door af te trekken kolombreedte.

Een wankele start

Zoals veel nieuwe functies van CSS, is het pad om naar de browser en gebruikers te worden verzonden een lang, uitgesponnen, ingewikkeld proces. CSS-variabelen zijn geen uitzondering - de syntaxis is al een aantal keren drastisch veranderd en op het moment van schrijven heeft Google Chrome de functie volledig verwijderd totdat alles tot rust is gekomen.

Firefox 31 is momenteel de enige browser die wordt geleverd met native CSS-variabelen. Maar het komt wel goed. In dit artikel laat ik u zien hoe u vandaag aan de slag kunt met CSS-variabelen.

Nabewerking om uit het probleem te komen

Met zoveel disclaimers over welke browsers CSS-variabelen ondersteunen, denk je waarschijnlijk: "Geweldig, dit is iets dat ik de afgelopen vijf jaar niet kan gebruiken." Hoewel we variabelen niet precies kunnen polyfill, kunnen we op zijn minst bestaande tooling gebruiken om te doen alsof variabelen overal volledig worden ondersteund.


In plaats van te vertrouwen op het gebruik van een preprocessor (en dus de syntaxis van de preprocessor voor variabelen), kunnen we iets nieuws proberen: een postprocessor. Een postprocessor verschilt alleen van een preprocessor in naam. Postprocessors zijn niet bedoeld om CSS uit te breiden: in feite is het de bedoeling dat u codeert alsof u recentelijk uitgebrachte CSS-standaarden gebruikt (of edge, in het geval van variabelen), en het vult de lege plekken in.

Over mythe en herwerking

Mythe (door Ian Storm Taylor) is een postprocessor die een reeks door herwerkte plug-ins samenbrengt. Het biedt calc, variabelen, kleurmenging en CSS-browserleveranciersvoorvoegsels (dankzij het ongelooflijke autoprefixer-project).

: root {--column-width: 3rem; --kolom-goot: .5rem; } .column {min-breedte: var (- kolombreedte); }

Plots kun je beginnen te doen alsof het al 2019 is. Je hoeft niet te werken aan wat er in elke browser wordt ondersteund: je schrijft de code maar één keer.

Aan de slag gaan is ook gemakkelijk, aangezien Myth een NPM-pakket is. Nadat u de installatie heeft uitgevoerd, hoeft u alleen maar het volgende op de opdrachtregel uit te voeren:

mythe futuristic.css clever.css


Nu is uw clever.css-bestand klaar voor de browser.

Een laatste woord

Ik ben niet alleen enthousiast over de toekomst van CSS, maar ook vooral enthousiast over waar CSS-variabelen ontwerpers en ontwikkelaars naartoe zullen leiden - hopelijk naar een eenvoudiger, begrijpelijker, lichtere toolketen waar het delen van code absoluut triviaal is!

Ben Schwarz is een onafhankelijke webdude uit Melbourne. Hij is een teamlid van CSSConfAU, JSConf en Bower. Dit is een uitgebreide versie van een artikel uit netmagazine 259.

Zorg Ervoor Dat Je Leest
15 essentiële tools voor grafisch ontwerpers in 2021
Lees Verder

15 essentiële tools voor grafisch ontwerpers in 2021

PRING NAAR: E entiële hardware oftware Creatieve uitru ting Thui kantoor Al u nog een paar e entiële tool aan uw ar enaal voor grafi ch ontwerp wilt toevoegen, bent u hier aan het jui te ad...
Toptips voor het beeldhouwen van een wezen in ZBrush
Lees Verder

Toptips voor het beeldhouwen van een wezen in ZBrush

Om het bouwen van een wezen in ZBru h te demon treren, gebruik ik dit 3D-kun twerk waaraan ik werk, ontworpen door CreatureBox.Al je nog nooit van ze hebt gehoord, bekijk ze dan online. Hun ontwerpen ...
Aan boord van Star Trek: Discovery
Lees Verder

Aan boord van Star Trek: Discovery

Geïn pireerd door Jonathan wift' Gulliver' Travel , probeerde de Amerikaan e cenario chrijver en producent Gene Roddenberry met tar Trek intellectuele thema' te verkennen binnen panne...