For omkring 15 år siden arbejdede jeg i en virksomhed, hvor vi byggede apps til rejsebureauer, lufthavnsarbejdere og flyselskaber. Vi byggede også vores egne interne rammer til UI-komponenter og enkeltsides app-funktioner. Vi havde komponenter til alt: felter, knapper, faner, intervaller, datatabeller, menuer, datepickers, selects og multiselects. Vi havde endda en div-komponent. Vores div-komponent var i øvrigt fantastisk, den gav os mulighed for at lave afrundede hjørner på alle browsere, hvilket, tro det eller ej, ikke var en nem ting at gøre på det tidspunkt.

Vores arbejde fandt sted på et tidspunkt i vores historie, hvor JS, Ajax og dynamisk HTML blev set som en revolution, der bragte os ind i fremtiden. Pludselig kunne vi opdatere en side dynamisk, hente data fra en server og undgå at skulle navigere til andre sider, hvilket blev set som langsomt og blinkede med et stort hvidt rektangel på skærmen mellem de to sider. Der var en sætning, gjort populær af Jeff Atwood (grundlæggeren af StackOverflow), som lød: "Enhver applikation, der kan skrives i JavaScript, vil i sidste ende blive skrevet i JavaScript." - Jeff Atwood

For os på det tidspunkt føltes det som en tur til rent faktisk at gå hen og lave de apps. Det føltes som en generel godkendelse at gøre alt sammen med JS. Så vi gjorde alt med JS, og vi tog os ikke rigtig tid til at undersøge andre måder at gøre tingene på. Vi følte ikke rigtigt incitamentet til ordentligt at lære, hvad HTML og CSS kunne gøre. Vi opfattede egentlig ikke nettet som en app-platform i udvikling i sin helhed. Vi så det for det meste som noget, vi skulle omgås, især når det kom til browserunderstøttelse. Vi kunne bare kaste mere JS på det for at få tingene gjort. Ville det hjælpe mig at tage mig tid til at lære mere om, hvordan nettet fungerede, og hvad der var tilgængeligt på platformen? Sikker på, jeg kunne nok have barberet en masse kode, der ikke virkelig var nødvendigt. Men på det tidspunkt, måske ikke så meget. Du kan se, browserforskelle var ret betydelige dengang. Dette var en tid, hvor Internet Explorer stadig var den dominerende browser, hvor Firefox var den nærmeste anden, men begyndte at tabe markedsandele på grund af Chrome, der hurtigt vandt popularitet. Selvom Chrome og Firefox var ret gode til at blive enige om webstandarder, betød miljøerne, som vores apps kørte i, at vi i lang tid skulle understøtte IE6. Selv da vi fik lov til at understøtte IE8, skulle vi stadig håndtere en masse forskelle mellem browsere. Ikke nok med det, men datidens web havde bare ikke så mange muligheder indbygget direkte i platformen.

Spol frem til i dag. Tingene har ændret sig enormt. Ikke alene har vi flere af disse muligheder end nogensinde før, men den hastighed, hvormed de bliver tilgængelige, er også steget. Lad mig stille spørgsmålet igen, så: Vil det hjælpe dig i dag at tage dig tid til at lære mere om, hvordan nettet fungerer, og hvad der er tilgængeligt på platformen? Absolut ja. At lære at forstå og bruge webplatformen i dag giver dig en enorm fordel i forhold til andre udviklere. Uanset om du arbejder med ydeevne, tilgængelighed, lydhørhed, dem alle sammen eller bare sender brugergrænsefladefunktioner, hvis du ønsker at gøre det som en ansvarlig ingeniør, hjælper det dig med at nå dine mål hurtigere og bedre, hvis du kender de værktøjer, der er tilgængelige for dig. Nogle ting, du måske ikke har brug for et bibliotek til længere Når vi ved, hvad browsere understøtter i dag, er spørgsmålet så: Hvad kan vi droppe? Har vi brug for en div-komponent til at lave afrundede hjørner i 2025? Selvfølgelig gør vi ikke. Egenskaben border-radius er blevet understøttet af alle aktuelt brugte browsere i mere end 15 år på dette tidspunkt. Og hjørneform kommer også snart, til endnu mere avancerede hjørner. Lad os tage et kig på relativt nyere funktioner, der nu er tilgængelige i alle større browsere, og som du kan bruge til at erstatte eksisterende afhængigheder i din kodebase. Pointen er ikke straks at droppe alle dine elskede biblioteker og omskrive din kodebase. Hvad angår alt andet, skal du først tage browsersupport i betragtning og beslutte dig baseret på andre faktorer, der er specifikke for dit projekt. Følgende funktioner er implementeret i de tre hovedbrowsermotorer (Chromium, WebKit og Gecko), men du har muligvis forskellige browsersupportkrav, der forhindrer dig i at bruge dem med det samme. Nu er det dog stadig et godt tidspunkt at lære om disse funktioner, og måske planlægge at bruge dem på et tidspunkt. Popovers og dialogbokse Popover API,

HTML-elementet og ::backdrop pseudo-elementet kan hjælpe dig med at slippe af med afhængigheder af popup,værktøjstip og dialogbiblioteker, såsom Floating UI, Tippy.js, Tether eller React Tooltip. De håndterer tilgængelighed og fokusstyring for dig, ud af boksen, er meget tilpasselige ved at bruge CSS og kan nemt animeres. Harmonikaer Elementet
, dets navneattribut for gensidigt eksklusive elementer og ::details-content pseudo-elementet fjerner behovet for harmonikakomponenter som Bootstrap Accordion eller React Accordion-komponenten. Bare brug af platformen her betyder, at det er nemmere for folk, der kender HTML/CSS, at forstå din kode uden først at skulle lære at bruge et bestemt bibliotek. Det betyder også, at du er immun over for at bryde ændringer i biblioteket eller afbrydelse af det pågældende bibliotek. Og selvfølgelig betyder det mindre kode at downloade og køre. Gensidigt eksklusive detaljeringselementer behøver ikke JS for at åbne, lukke eller animere. CSS syntaks Kaskadelag, for en mere organiseret CSS-kodebase, CSS-indlejring, for mere kompakt CSS, nye farvefunktioner, relative farver og farvemix, nye matematikfunktioner som abs(), sign(), pow() og andre hjælper med at reducere afhængighed af CSS-forprocessorer, hjælpebiblioteker som Bootstrap og Tailwind, eller endda runtime CSS-in. Spilskifteren :has(), en af ​​de mest efterspurgte funktioner i lang tid, fjerner behovet for mere komplicerede JS-baserede løsninger. JS Utilities Moderne Array-metoder som findLast(), eller at(), samt Set-metoder som difference(), intersection(), union() og andre kan reducere afhængigheder af biblioteker som Lodash. Containerforespørgsler Containerforespørgsler får UI-komponenter til at reagere på andre ting end viewportstørrelsen og gør dem derfor mere genanvendelige på tværs af forskellige kontekster. Ingen grund til at bruge et JS-tungt UI-bibliotek til dette længere, og heller ikke nødvendigt at bruge en polyfill. Layout Grid, subgrid, flexbox eller multi-column har eksisteret i lang tid nu, men ser man på resultaterne af State of CSS-undersøgelser, er det klart, at udviklere har en tendens til at være meget forsigtige med at tage nye ting i brug og vente i meget lang tid, før de gør det. Disse funktioner har været Baseline i lang tid, og du kan bruge dem til at slippe af med afhængigheder af ting som Bootstraps gittersystem, Foundation Frameworks flexbox-værktøjer, Bulma fixed grid, Materialize grid eller Tailwind-søjler. Jeg siger ikke, at du skal droppe dine rammer. Dit team adopterede det af en grund, og at fjerne det kan være et stort projekt. Men at se på, hvad webplatformen kan tilbyde uden en tredjepartsindpakning ovenpå, kommer med en masse fordele. Ting, du måske ikke har brug for længere i den nærmeste fremtid Lad os nu tage et hurtigt kig på nogle af de ting, du ikke har brug for et bibliotek til i den nærmeste fremtid. Det vil sige, at nedenstående ting ikke er helt klar til masseadoption, men det kan være nyttigt at være opmærksom på dem og planlægge for potentiel senere brug. Ankerpositionering CSS-ankerpositionering håndterer placeringen af popovers og værktøjstip i forhold til andre elementer og sørger for at holde dem synlige, selv når du flytter, ruller eller ændrer størrelse på siden. Dette er et godt supplement til Popover API nævnt før, som vil gøre det endnu nemmere at migrere væk fra mere ydeevnekrævende JS-løsninger. Navigation API Navigations-API'en kan bruges til at håndtere navigation i enkeltside-apps og kan være et godt supplement, eller endda en erstatning, til React Router, Next.js routing eller Angular routing-opgaver. Se Transitions API View Transitions API kan animere mellem de forskellige tilstande på en side. På en enkeltsidet applikation gør dette jævne overgange mellem tilstande meget nemme og kan hjælpe dig med at slippe af med animationsbiblioteker såsom Anime.js, GSAP eller Motion.dev. Endnu bedre, API'et kan også bruges med flere-side applikationer. Kan du huske tidligere, da jeg sagde, at grunden til, at vi byggede enkeltside-apps i virksomheden, hvor jeg arbejdede for 15 år siden, var for at undgå det hvide glimt af sidegenindlæsninger, når vi navigerede? Havde den API været tilgængelig på det tidspunkt, ville vi have været i stand til at opnå smukke sideovergangseffekter uden en enkeltsideramme og uden en enorm indledende download af hele appen. Scroll-drevne animationer Scroll-drevne animationer kører på brugerens rulleposition snarere end over tid, hvilket gør dem til en fantastisk løsning til historiefortælling og produktrundvisninger. Nogle mennesker er gået lidt over toppen med det, men når det bruges godt, kan det være et meget effektivt designværktøj og kan hjælpe med at slippe af med biblioteker som: ScrollReveal, GSAP Scroll ellerWOW.js. Tilpasbare valg Et tilpasset udvalg er et normalt

No spam. Join 138,000+ creators. Unsubscribe anytime.

Create Your Free Bio Page

Join 138,000+ creators on Seemless.

Get Started Free