Er der for meget CSS nu? PlatoBlockchain Data Intelligence. Lodret søgning. Ai.

Er der for meget CSS nu?

Som frontend-udviklere har vi ønsket os en masse ting gennem årene - måder at centrere ting i CSS, indkapsle stilarter, indstille et elements billedformat, få mere detaljeret kontrol over vores farver, vælge et element baseret på dets børns egenskaber, administrere lag af specificitet, tillade elementer at reagere på bredden af ​​deres forældre... listen bliver ved og ved.

Og nu hvor vi fik alt, hvad vi ønskede os og mere til, spørger nogle af os - har vi nu for meget CSS?

De mørke tider

Hvis du, ligesom jeg, kom op i webudvikling under CSS's barndom, virker tanken om at have for meget af det latterlig.

Dengang bestod stort set hele jobbeskrivelsen for en frontend-udvikler i at håndtere CSS's begrænsninger. Det clearfix hack at rydde flåd, den 100% polstring hack at lave firkantede divs, for ikke at nævne semi-tilfældig anvendelse af ikke-relaterede egenskaber for at narre Internet Explorer til at gøre dit bud.

På det tidspunkt var browseren en lumsk fjende, der skulle besejres gennem ren og skær list og mystiske besværgelser. I dag venter den perfekte ejendom og kun en copy-paste væk på MDN.

Den nye æra af CSS

Men i dag er tingene vidt forskellige: Ikke kun går tingene meget hurtigere, men også browserleverandører faktisk pleje om at gøre udviklere glade! Jeg ved det, jeg kunne heller ikke tro det. Men jeg løber det årlige CSS tilstand udviklerundersøgelse (som er åben nu forresten - tag den!) og jeg ved med sikkerhed, at browserudviklingsteams bruger undersøgelsesresultaterne (blandt mange andre datapunkter) til at informere deres køreplan.

Udover dette har Google også hjulpet med at finansiere mit arbejde med undersøgelsen og endda ansat Lea Verou at gå i spidsen for udvælgelsen af ​​dette års undersøgelsesspørgsmål.

Det er ikke kun Google. Det er blevet moderne at bash Safari og Apple generelt (nogle gange fortjent), men du kan ikke benægte, hvor passioneret en person kan lide Bare Simmons handler om at lytte til udviklere og forbedre nettet.

Og ikke kun browserleverandører forbedrer CSS på egen hånd; de samarbejder endda på tværs af kamplinjer med initiativer som f.eks Interop 2023 for at hjælpe med at reducere uoverensstemmelser og inkompatibiliteter mellem browsere.

For meget af en god ting?

Resultatet af alt dette er, at vi nu står over for en forlegenhed af CSS-rigdomme, og det kan være svært at indhente. CSS-gitter begyndte at blive understøttet i større browsere for næsten fem år siden, men jeg tjekker stadig en reference, hver gang jeg bruger den. Og så cool som undernet Det ser ud til, at jeg endnu ikke har prøvet det.

Under udvælgelsesprocessen hvilke CSS-funktioner der skal inkluderes eller ej i CSS-staten, Lea og jeg overvejede mange funktioner, men vi afviste også en del. Nogle eksempler på den funktion vi ikke omfatter er:

  • linear() lempende funktion, som lader dig definere lempelseskurver med mere granularitet. 
  • env() funktion, som lader dig bruge variabler defineret af browseren eller enheden. 
  • scrollbar-width egenskab, som hjælper med at kontrollere en rullepanels udseende. 
  • margin-trim egenskab, som lader dig kontrollere, hvordan en containers børns marginer opfører sig. 

Disse er alle potentielt meget nyttige, og ville alle have været store nyheder under de seneste års CSS-tørke. Men i dagens sammenhæng skal de kæmpe om opmærksomheden med meget større meddelelser, såsom has()-vælgeren eller CSS-nesting!

Ikke begejstret

Som Silvestar Bistrović skriver, er han "ikke så begejstret for alle disse nye CSS-funktioner." Dette fandt et ekko på Twitter, med Sara Soueidan siger, at det, hun bekymrer sig om, er "praktiskhed, ikke hvor skinnende en funktion ser ud i øjeblikket."

Det kan virke som en negativ holdning, men jeg synes, det er forståeligt. Ingen kan forventes at holde trit med så mange nye funktioner!

En anden utilsigtet (eller måske tilsigtet?) konsekvens er, at jo mere kompleks CSS bliver, jo mere hæver det barren for enhver ny virksomhed, der ønsker at udvikle en browsermotor - for slet ikke at sige noget om den ekstra arbejdsbyrde, når det kommer til at vedligeholde og dokumentere alt. disse nye funktioner. 

CSS-overskridelse

Der er også den meget berettigede bekymring for, at CSS måske forgrener sig til områder, det ikke er helt egnet til at håndtere. Det er en anden ting, Sara Soueidan påpegede, da hun reagerede på den nye CSS Toggles eksperimentelle implementering (her er en billet, der diskuterer det):

Mange har gjort den meget rimelige pointe, at denne form for adfærd bedst håndteres af et nyt HTML-element i stedet for at administrere skiftetilstand udelukkende gennem CSS, og at CSS måske ikke er det bedste medie til at sikre, at tilgængelighedsproblemer løses korrekt. 

Når CSS overtager noget, der tidligere blev håndteret gennem JavaScript, ses dette generelt som en god ting, da det ofte reducerer mængden af ​​kode, som browseren skal indlæse. Så jeg er forsigtigt optimistisk med hensyn til CSS Toggles og stoler på, at CSS Working Group vil tage fat på fællesskabets bekymringer. Men der kan endnu komme en dag, hvor vi begynder at bekymre os om, at CSS kan udvide sig ud over dets grænser og gribe ind i HTML og JavaScripts ansvar.

Nye forventninger

Og måske er det det, der skal ændres: måske skal vi droppe den forventning, som CSS-udviklere skal kende alle af CSS? 

Denne forventning stammer fra de dage, hvor CSS var en eftertanke, den lille irriterende syntaks, du skulle lære for at gøre din knap blå og fed, ligesom kunden bad om. Men jeg tror, ​​vi er nødt til at acceptere, at dagens CSS måske bare er alt for omfattende for en enkelt person at mestre, især ud over andre front-end-opgaver.

As Michelle Barker udtrykker det:

Og det er der, jeg selv lander til sidst. Jeg har sluttet fred med, at jeg nok aldrig vil bruge - eller overhovedet kende til - alle mulige CSS-funktioner. Og dette kommer fra en, der kører en undersøgelse om CSS!

Men disse nye funktioner vil helt sikkert være nyttige for person. Nogen vil skrive blogindlæg om dem, skabe fede CodePens med dem, holde foredrag om dem. Denne person vil være en sej, ung, energisk udvikler, der stadig har hele deres hår. Det bliver med andre ord ikke mig - og det er fint. 

Og måske er du bekymret for, at denne nye udvikler vil blive overvældet af alle de ting, de skal lære på én gang. Men husk alle de ting, de vil ikke skal lære om, netop fordi det er blevet erstattet af disse nyere alternativer. Jeg ved, jeg ville tage den aftale når som helst.

Men tænk over det: I de seneste par år har vi ikke kun set en enorm stigning i antallet af enheder, vi skal tage højde for, vi er også begyndt at erkende, at vi alle bruger nettet på lidt forskellige måder, uanset om det er pga. til handicap, nuværende kontekst eller blot personlige præferencer. Bør CSS ikke tilpasse sig denne nye virkelighed?

Nu må jeg indrømme, at det hele har fået mig til at føle mig en smule nostalgisk... så undskyld mig, mens jeg rydder et par flydere, bare for gamle dages skyld.


Som jeg nævnte, den årlige Status for CSS-undersøgelse er nu åben. Uanset om du synes, der er for meget CSS eller ej, er undersøgelsen en fantastisk måde at lade browserudviklere vide, hvordan du har det, så gå udfyld det hvis du har 10 minutter. 

Tidsstempel:

Mere fra CSS-tricks