Er det for mye CSS nå? PlatoBlockchain Data Intelligence. Vertikalt søk. Ai.

Er det for mye CSS nå?

Som frontend-utviklere har vi ønsket oss mange ting gjennom årene – måter å sentrere ting i CSS, innkapsle stiler, angi et elements sideforhold, få mer detaljert kontroll over fargene våre, velge et element basert på dets barns egenskaper, administrere lag av spesifisitet, tillate elementer å svare på bredden til foreldrene... listen fortsetter og fortsetter.

Og nå som vi fikk alt vi ønsket oss og mer, spør noen av oss - har vi nå for mye CSS?

De mørke tidene

Hvis du, som meg, kom opp i nettutvikling under CSSs barndom, virker ideen om å ha for mye av det latterlig.

Tilbake i dagene besto praktisk talt hele jobbbeskrivelsen til en front-end-utvikler av å håndtere CSS sine begrensninger. De clearfix-hack å fjerne flyter, den 100% polstring hack å lage firkantede divs, for ikke å nevne semi-tilfeldig bruk av urelaterte egenskaper for å lure Internet Explorer til å gjøre budene dine.

På den tiden var nettleseren en utspekulert fiende som skulle beseires gjennom ren list og mystiske besvergelser. I dag venter den perfekte eiendommen og bare en copy-paste unna på MDN.

Den nye æraen for CSS

Men i dag er ting veldig annerledes: ikke bare går ting mye raskere, men nettleserleverandører faktisk bryr seg om å gjøre utviklere glade! Jeg vet, jeg kunne ikke tro det heller. Men jeg kjører årlig Status for CSS utviklerundersøkelse (som er åpen nå forresten - gå og ta den!) og jeg vet med sikkerhet at nettleserutviklingsteam bruker undersøkelsesresultatene (blant mange andre datapunkter) for å informere veikarten deres.

Utover dette har Google også hjulpet med å finansiere arbeidet mitt med undersøkelsen, og til og med ansatt Lea Verou å ta ledelsen i valg av årets spørreundersøkelsesspørsmål.

Det er ikke bare Google. Det har blitt moderne å bash Safari og Apple generelt (noen ganger fortjent), men du kan ikke nekte hvor lidenskapelig noen liker Bare Simmons handler om å lytte til utviklere og forbedre nettet.

Og ikke bare forbedrer nettleserleverandører CSS på egenhånd; de samarbeider til og med på tvers av kamplinjer med initiativer som Interop 2023 for å redusere inkonsekvenser og inkompatibilitet mellom nettlesere.

For mye av en god ting?

Resultatet av alt dette er at vi nå står overfor en forlegenhet av CSS-rikdom, og det kan være vanskelig å ta igjen. CSS-rutenett begynte å bli støttet i store nettlesere for nesten fem år siden, men jeg sjekker fortsatt en referanse hver gang jeg bruker den. Og så kult som undernett ser ut til at jeg ennå ikke har prøvd det ut.

Under prosessen med å velge hvilke CSS-funksjoner som skal inkluderes eller ikke i staten CSS, Lea og jeg vurderte mange funksjoner, men vi avviste også ganske mange. Noen eksempler på funksjonen vi ikke inkluderer er:

  • De linear() lettelsesfunksjon, som lar deg definere easing-kurver med mer granularitet. 
  • De env() funksjon, som lar deg bruke variabler definert av nettleseren eller enheten. 
  • De scrollbar-width egenskap, som hjelper til med å kontrollere utseendet til en rullefelt. 
  • De margin-trim egenskap, som lar deg kontrollere hvordan en containers barnemarger oppfører seg. 

Disse er alle potensielt veldig nyttige, og alle ville vært store nyheter under CSS-tørken de siste årene. Men i dagens sammenheng må de kjempe om oppmerksomheten med mye større kunngjøringer, som has()-velgeren eller CSS-nesting!

Ikke begeistret

Som Silvestar Bistrović skriver, er han "ikke så begeistret for alle disse nye CSS-funksjonene." Dette fant et ekko på Twitter, med Sara Soueidan sier at det hun bryr seg om er "praktisk, ikke hvor skinnende en funksjon ser ut for øyeblikket."

Dette kan virke som en negativ holdning, men jeg tror det er forståelig. Ingen kan forventes å holde tritt med så mange nye funksjoner!

En annen utilsiktet (eller kanskje tilsiktet?) konsekvens er at jo mer kompleks CSS blir, desto mer hever det baren for ethvert nytt selskap som ønsker å utvikle en nettlesermotor – for ikke å si noe om den ekstra arbeidsmengden når det gjelder vedlikehold og dokumentering av alt. disse nye funksjonene. 

CSS-overrekkevidde

Det er også den svært gyldige bekymringen om at CSS kan forgrene seg til områder det ikke er helt egnet til å håndtere. Det er en annen ting Sara Soueidan påpekte da hun reagerte på den nye CSS Toggles eksperimentelle implementeringen (her er en billett som diskuterer det):

Mange har gjort det svært rimelige poenget at denne typen atferd best kan håndteres av et nytt HTML-element i stedet for å administrere veksletilstanden utelukkende gjennom CSS, og at CSS kanskje ikke er det beste mediet for å sikre at tilgjengelighetsproblemer blir løst på riktig måte. 

Når CSS overtar noe som tidligere ble håndtert gjennom JavaScript, blir dette generelt sett på som en god ting, da det ofte reduserer mengden kode nettleseren må laste. Så jeg er forsiktig optimistisk når det gjelder CSS-vekslinger og stoler på at CSS-arbeidsgruppen vil ta opp bekymringene til fellesskapet på riktig måte. Men det kan ennå komme en dag da vi begynner å bekymre oss for at CSS kan utvide seg utenfor grensene og inngripe HTML og JavaScripts ansvar.

Nye forventninger

Og kanskje er det dette som må endres: kanskje vi bør droppe forventningen som CSS-utviklere må vite alle av CSS? 

Denne forventningen stammer fra dagene hvor CSS var en ettertanke, den lille irriterende syntaksen du måtte lære for å gjøre knappen blå og fet, akkurat som klienten ba om. Men jeg tror vi må akseptere at dagens CSS kan være altfor omfattende for en enkelt person å mestre, spesielt i tillegg til andre front-end-oppgaver.

As Michelle Barker sier det:

Og det er der jeg selv lander til slutt. Jeg har sluttet meg til det faktum at jeg sannsynligvis aldri kommer til å bruke - eller til og med vite om - alle mulige CSS-funksjoner. Og dette kommer fra noen som kjører en spørreundersøkelse om CSS!

Men disse nye funksjonene vil sikkert være nyttige for noen. Noen vil skrive blogginnlegg om dem, lage kule kodepenner med dem, holde foredrag om dem. Den personen vil være en kul, ung, energisk utvikler som fortsatt har alt håret. Med andre ord, det vil ikke være meg - og det er greit. 

Og kanskje du er bekymret for at denne nye utvikleren vil bli overveldet av alt de må lære på en gang. Men husk alle tingene de ikke vil må lære om, nettopp fordi det har blitt erstattet av disse nyere alternativene. Jeg vet at jeg vil ta den avtalen når som helst.

Men tenk på det: I løpet av de siste par årene har vi ikke bare sett en enorm økning i antall enheter vi trenger å imøtekomme, vi har også begynt å innse at vi alle bruker nettet på litt forskjellige måter, enten det er pga. til funksjonshemminger, nåværende kontekst eller bare personlige preferanser. Bør ikke CSS tilpasse seg denne nye virkeligheten?

Nå må jeg innrømme at alt dette har fått meg til å føle meg litt nostalgisk... så unnskyld meg mens jeg rydder et par flyter, bare for gamle dagers skyld.


Som jeg nevnte, den årlige Status for CSS-undersøkelse er nå åpen. Enten du synes det er for mye CSS eller ikke, er undersøkelsen en fin måte å la nettleserutviklere få vite hvordan du har det, så gå fyll den ut hvis du har 10 minutter. 

Tidstempel:

Mer fra CSS triks