Normalize.css - Vad är det?

CSS-filen "Normalize.css" är ett extremt praktiskt och mycket väl genomtänkt Cascading Stylesheet: den tillhandahåller stilar som är mer konsekventa över olika webbläsare jämfört med HTML-elementens standardstilar. Ett modernt, HTML5-optimerat alternativ till den traditionella CSS-resetten.

CSS normalisieren mit Normalize

Som webbutvecklare ställs jag regelbundet inför utmaningen att säkerställa konsekventa layouter i olika webbläsare. Gång på gång stöter jag på Normalise.css ett verktyg som har etablerat sig som oumbärligt för modern webbutveckling under de senaste åren. Låt oss gå djupare in i frågan och ta reda på varför Normalize.css är så kraftfullt och hur du kan få ut det mesta av det.

Vad är Normalize.css och varför är det viktigt?

Normalise.css är ett CSS-bibliotek som utvecklats av Nicolas Gallagher och Jonathan Neal har utvecklats för att normalisera standardstilarna för HTML-element i olika webbläsare. Syftet är att eliminera skillnaderna i standardvisningen av element utan att radera användbara webbläsarstandarder. Detta står i kontrast till klassiska CSS-resets, som tar bort alla stilar och ger utvecklare uppgiften att designa om varje element från grunden.

Formatmallen Normalize.css används för närvarande i olika projekt: Twitter Bootstrap, HTML5-boilerplate, GOV.UK, Rdio, CSS-trick, SoundCloud samt i många andra ramverk, verktygslådor och webbplatser.

Formatmallen stöder ett stort antal webbläsare (inklusive mobila webbläsare) och innehåller CSS-regler för normalisering av HTML5-element, typografi, listor, inbäddat innehåll, formulär och tabeller.

Varför är detta viktigt? Webbläsarnas standardstilar är ofta inkonsekventa, vilket innebär att en webbplats kan se olika ut i olika webbläsare. Normalize.css hjälper till att eliminera dessa inkonsekvenser genom att förenhetliga standardstilar samtidigt som användbara standardvärden bevaras. Detta sparar inte bara tid, utan ger också en mer konsekvent användarupplevelse på olika enheter och i olika webbläsare.

Mer djupgående funktioner i Normalize.css

Normalize.css erbjuder ett antal fördelar som går utöver ren normalisering:

  1. Konsistens i webbläsaren: Den tar hand om många mindre men avgörande skillnader i visningen av element mellan olika webbläsare, till exempel hanteringen av inmatning-fält, knapp-stilar och bord-layouter. Detta minskar ansträngningen för felsökning och säkerställer en standardiserad grund.
  2. Utökning av HTML5-stödet: HTML5 förde med sig många nya element och attribut som ofta inte visas korrekt i äldre webbläsare. Normalize.css ser till att dessa element visas på ett konsekvent och korrekt sätt i alla vanliga webbläsare. Till exempel kan sammanfattning-element, som är avsett att användas i Detaljer-element visas på ett enhetligt sätt i äldre webbläsare.
  3. Optimerad typografi: Normalize.css innehåller också typografiska justeringar som säkerställer att texten är enhetlig och läsbar på alla plattformar. Detta inkluderar inställningen av Linjehöjd, standardisering av teckenstorlek och borttagning av onödiga marginaler från standardtextelement.
  4. Formulär och inmatningselement: Ett av de mest problematiska områdena inom webbutveckling är visningen av formulärelement. Olika webbläsare hanterar dessa element på mycket olika sätt, vilket kan leda till betydande skillnader i utseende. Normalize.css normaliserar dessa stilar genom att skapa konsekventa basstilar för inmatning, textarea, välj och knapp-element.
  5. Modulär design: Koden i Normalize.css är uppdelad i väldokumenterade, separata avsnitt. Detta gör att du kan använda enskilda delar specifikt eller utelämna dem om så krävs. Om du t.ex. vet att din webbplats inte använder formulär kan du enkelt utelämna det här avsnittet, vilket ytterligare optimerar laddningstiden för din webbplats.

Normalisera eller återställa?

Det är värt att titta närmare på hur en normalise.css-stilmall skiljer sig från en vanlig CSS-återställning:

„Normalise.css bevarar användbara standardstilar.”

Återställningen åstadkommer en homogen visuell stil genom att bokstavligen platta till standardstilarna för nästan alla element. Däremot bevarar normalise.css många användbara standardstilar för webbläsaren. Det innebär att du inte behöver omdefiniera alla stilar för de allmänna typografiska elementen.

Om ett element tilldelas olika standardstilar i olika webbläsare syftar normalise.css till att göra dessa stilar så konsekventa och kompatibla med moderna standarder som möjligt.

„Normalise.css rättar till allmänna buggar.”

Allmänna buggar i webbläsare för datorer och mobiler som ligger utanför återställningens omfattning kommer att åtgärdas. Detta inkluderar visningsreglerna för HTML5-element som teckenstorlekDe nya funktionerna omfattar korrigering av förformaterad text, SVG-överlappningar i IE9 och många plattforms- och webbläsaröverskridande buggar i formulär.

I följande exempel kan du se hur stilmallen normalise.css använder det nya HTML5-värdet för inmatningsattribut "Sök" av typattributet konsekvent och anpassningsbart i alla webbläsare:

/**
* 1. adressernas utseende inställt på sökfält i S5, Chrome
* 2. adressernas boxstorlek inställd på border-box i S5, Chrome (inkludera -moz för att framtidssäkra)
*/

input[type="search"] {
  -webkit-utseende: textfält; /* 1 */
  -moz-box-sizing: innehåll-box;
  -webkit-box-sizing: content-box; /* 2 */
  box-storlek: content-box;
}

/**
* Tar bort inre stoppning och knappen för att avbryta sökning i S5, Chrome på OS X
*/

input[type="search"]::-webkit-search-decoration,
input[type="search"]::-webkit-search-cancel-button {
  -webkit-utseende: inget;
}

En återställning räcker ofta inte för att få webbläsarna att bli enhetliga när det gäller hur ett element ska visas. Detta gäller särskilt för formulär. Ett område där stilmallen normalise.css är till stor hjälp.

„Normalize.css överbelastar inte felsökningsverktygen.„

Om en normalise.css-stilmall används uppstår inte detta fenomen i lika stor utsträckning eftersom specifika stilar behandlas och multipla väljare endast används mycket sparsamt i regeluppsättningarna.

normalize css
En bekant vy i webbläsarens felsökningsverktyg när du använder en CSS-återställning

„Normalize.css är modulärt användbart.”

Projektet har delats upp i relativt självständiga delar. Detta gör det lätt att se vilka element som kräver specifika stilar. Det gör också att man kan ta bort ett avsnitt (t.ex. normalisering av formulär) om man vet att den egna webbplatsen aldrig kommer att behöva de definierade reglerna.

„Normalize.css har omfattande dokumentation.”

Koden i normalize.css bygger på metodiska tester och noggranna undersökningar av olika webbläsare. Koden är utförligt dokumenterad i själva filen och beskrivs ännu mer ingående i Github-wikin. Man kan alltså noggrant undersöka vad varje kodrad „gör“, varför den har lagts in, vilka skillnader det finns mellan olika webbläsare, vilket avsevärt underlättar genomförandet av egna tester.

Projektet syftar till att klargöra hur webbläsare visar element som standard och göra det enklare att bidra med förbättringar.

Bästa praxis för integrering av Normalize.css

Installera först eller ladda ner stilmallen normalise.css från GitHub. Det finns olika sätt att använda Normalize.css på ett effektivt sätt. Du bör följa följande procedurer:

  1. Anpassning till projektkrav: Använd Normalize.css som grund och anpassa den till dina specifika projektkrav. Det innebär att du använder filen som utgångspunkt för din egen grundläggande CSS och skriver över den vid behov.
  2. Oförändrad integration: Alternativt kan du inkludera Normalize.css oförändrat i ditt projekt och sedan justera specifika stilar i en separat CSS-fil. Det är viktigt att din egen stilmall laddas efter integrationen av Normalize.css så att dina ändringar kan skriva över normaliseringen.
  3. Optimerade laddningstider: Se till att du bara använder de delar av Normalize.css som du verkligen behöver. Den modulära strukturen gör det lättare att ta bort onödiga delar och därmed optimera laddningstiden för din webbplats.

Webbläsare som stöds

  • Google Chrome (nuvarande)
  • Mozilla Firefox (nuvarande)
  • Mozilla Firefox ESR
  • Opera (nuvarande)
  • Apple Safari 6+
  • Internet Explorer 8+

Avslutande anmärkningar

Formatmallen normalise.css skiljer sig från CSS reset när det gäller omfattning och utförande. Det är värt att pröva om det passar din projektutveckling och dina preferenser.

Projektet utvecklas öppet på GitHub. Vem som helst kan rapportera problem samt bidra med korrigeringar och tillägg. Projektets fullständiga historik är tillgänglig för allmänheten, och sammanhanget och skälen till eventuella kodändringar kan läsas i „commit“-meddelandena och „issue“-inläggen.

Ytterligare läsmaterial

För att fördjupa dina kunskaper och arbeta direkt med Normalize.css hittar du en lista över användbara resurser här:

„CSS: The Definitive Guide” von Eric Meyer – Ein tiefgehendes Buch, das die Feinheiten von CSS beschreibt und nützliche Techniken zur Handhabung

Med dessa resurser är du väl rustad för att integrera Normalize.css i dina projekt och enkelt klara av utmaningarna med kompatibilitet mellan webbläsare. Lycka till med din utveckling!

Om författaren

Saskia Teichmann ger råd om AI, e-handel och digitala plattformar och granskar själv de tekniska förutsättningarna i arkitekturen och koden.

Mer om mitt arbete

Diskussion om inlägget

2 kommentarer

Frågor, tillägg och erfarenheter från praktiken – som vuxit fram historiskt och bevarats i sin helhet här.

  1. Boxspring-sängar

    Tack för den detaljerade förklaringen av Normalize.css! Jag visste att det fanns en skillnad mot klassiska CSS-återställningar, men jag insåg inte hur många buggar det faktiskt fixar i olika webbläsare. Jag tyckte att punkten om modulär användning var särskilt spännande - det gör det mycket mer flexibelt än en fullständig återställning. Jag kommer definitivt att införliva det i mitt nästa projekt. Lg Ella

    Svar
  2. Marina Wottschal

    Förklaras mycket tydligt och begripligt! Artikeln går till botten med funktionen och fördelarna med normalize.css och visar varför det är så viktigt med konsekvent rendering i olika webbläsare. En bra introduktion - både för nybörjare och som en snabb uppfräschning för utvecklare.

    Svar

Delta i diskussionen

Din e-postadress kommer inte att publiceras. Obligatoriska fält är markerade.

Nyheter från studion

Nya inlägg via e-post.

När en ny verkstadsrapport eller guide publiceras får du ett kort e-postmeddelande med länken. Ingen fast utgivningsfrekvens, inga reklaminslag.

Läs hellre via RSS

Registreringen aktiveras först när du har klickat på bekräftelselänken. Du kan när som helst avsluta prenumerationen via länken i varje e-postmeddelande.