Guide mesures CSS

Introduktion

Två huvudkategorier

CSS-enheter delas in i absoluta (fasta, oberoende av kontext) och relativa (anpassar sig efter föräldraelement, typsnitt eller viewport).

Absoluta enheter

Alltid samma fysiska storlek oavsett sammanhang.

px mm cm in pt pc
Relativa enheter

Beror på typsnitt, förälder eller viewport.

em rem % vw vh vmin vmax ch ex
Absolut

Pixel px

Den vanligaste enheten. 1 px = 1/96 tum. På skärmar med hög DPI (retina) kan 1 CSS-px motsvara flera fysiska pixlar, men CSS-pixeln är alltid lika stor visuellt.

Dra i slidern för att ändra bredd i px
200px
200px
width: 200px;
/* Alltid exakt samma visuella storlek */
💡 Tips: Använd px för fasta storlekar som borders, ikoner och skuggor — saker som inte ska skala med textstorlek.
Absolut

Fysiska enheter mm cm in pt

Baserade på verkliga fysiska mått. Obs: På skärmar matchar de sällan exakt pga. olika pixeldensitet. Främst användbara vid utskrift.

Jämförelse — samma logiska storlek
1in (tum) = 96px
2.54cm = 1in
25.4mm = 1in
72pt = 1in
/* Alla dessa är exakt lika stora: */
width: 1in;      /* 1 tum */
width: 2.54cm/* 2.54 centimeter */
width: 25.4mm/* 25.4 millimeter */
width: 72pt;    /* 72 punkter */
width: 96px;    /* 96 pixlar */
Omvandlingstabell
EnhetMotsvararAnvändning
1mm≈ 3.78pxUtskrift
1cm= 10mm ≈ 37.8pxUtskrift
1in= 2.54cm = 96pxUtskrift
1pt= 1/72 tum ≈ 1.33pxTypografi / utskrift
1pc= 12pt = 16pxTraditionell typografi
⚠️ Varning: Fysiska enheter beter sig ofta inkonsekvent på skärmar. Använd dem i @media print stylesheet, men föredra px, rem och % på skärm.
Relativ

Em em

Relativ till förälderns font-size. 1em = förälderelementets textstorlek. Ems "kaskaderar" — de multipliceras vid nästling.

Ändra förälder-fontstorlek

Förälder: font-size: 16px

width: 10em = 160px
width: 5em = 80px
width: 2.5em = 40px
/* Förälder: font-size: 16px */
width: 10em; /* = 10 × 16 = 160px */
width: 5em/* = 5 × 16 = 80px */
width: 2.5em; /* = 2.5 × 16 = 40px */
⚠️ Kaskaderingsproblem med em
Nivå 1: font-size: 1.2em → 19.2px
Nivå 2: 1.2em → 23px
Nivå 3: 1.2em → 27.6px
/* Varje nivå multiplicerar: 16 × 1.2 × 1.2 × 1.2 ... */
/* Detta gör em oförutsägbar vid djup nästling */
/* Lösning: använd rem istället! */
Relativ

Root Em rem

Alltid relativ till rot-elementets (<html>) font-size. Standardvärde i webbläsare: 16px. Ingen kaskadeffekt — förutsägbart och konsekvent.

Ändra root font-size

html: font-size: 16px

1rem = 16px
2rem = 32px
0.75rem = 12px
/* Alltid baserat på html font-size, ej förälder */
font-size: 1rem;     /* = 16px */
padding: 1.5rem;   /* = 24px */
margin: 0.75rem/* = 12px */
🏆 Bästa praxis: Använd rem som standardenhet för font-size, padding, margin och spacing. Det ger en skalbar design där allt anpassas om användaren ändrar webbläsarens textstorlek.
Relativ

Procent %

Relativ till förälderns storlek. width: 50% = halva förälderns bredd. Vad % refererar till beror på egenskapen — bredd, höjd, font-size och padding har alla olika referenspunkt.

Dra för att ändra bredd i %
75%
width: 75%
% refererar till olika saker beroende på egenskap
Egenskap% refererar till
widthFörälderns bredd
heightFörälderns höjd (kräver att föräldern har en definierad höjd)
font-sizeFörälderns font-size
paddingFörälderns bredd (även top/bottom!)
marginFörälderns bredd
line-heightElementets font-size
Viewport

Viewport-enheter vw vh

1vw = 1% av viewportens bredd. 1vh = 1% av viewportens höjd. Perfekt för fullskärmslayouter och responsiv typografi.

Live-demo — ändra fönstrets storlek för att se effekten
50vw = halva fönstret
25vw
10vw

Ditt fönster: bred → 1vw =

/* Fullskärmshero */
width: 100vw/* hela fönstrets bredd */
height: 100vh; /* hela fönstrets höjd */

/* Responsiv typografi */
font-size: 5vw; /* växer med fönstret */
Dynamisk text med vw

Jag skalar!

font-size: 5vw

📱 Mobilvarning: På mobiler kan 100vh inkludera utrymme under adressfältet. Använd 100dvh (dynamic viewport height) för mer pålitligt resultat i moderna webbläsare.
Viewport

Minsta & Största vmin vmax

1vmin = 1% av den minsta dimensionen (bredd eller höjd). 1vmax = 1% av den största. Nyttigt för element som ska se bra ut i både landskap och porträtt.

30vmin

vmin = | vmax =

/* Perfekt kvadrat oavsett orientation */
width: 30vmin;
height: 30vmin;

/* Fönster 1200×800: vmin baseras på 800 (höjd) */
/* Fönster 600×900: vmin baseras på 600 (bredd) */
Typografi

Teckenbaserade ch ex

1ch = bredden av tecknet "0" i aktuellt typsnitt. 1ex = höjden av bokstaven "x". Perfekt för att styra textbredd och typografisk vertikal rytm.

Optimal radlängd med ch
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit.
/* Optimal läslängd: 45–75 tecken per rad */
max-width: 65ch;
ex — höjden av "x"
x
← 1ex hög (vid 3rem)
/* ex används sällan men är nyttigt för vertikal justering */
vertical-align: -0.5ex;
Funktioner

Smarta funktioner calc clamp min max

Moderna CSS-funktioner låter dig kombinera enheter, sätta gränser och skapa responsiva värden utan media queries.

calc() — Blanda enheter
calc(100% - 80px)
calc(50% + 40px)
/* Blanda olika enheter fritt */
width: calc(100% - 80px);
font-size: calc(1rem + 0.5vw);
height: calc(100vh - 60px);
clamp() — Responsiv med min och max

Jag är clamp(1rem, 3vw, 2.5rem)

Aldrig mindre än 1rem, aldrig större än 2.5rem

/* clamp(minimum, preferred, maximum) */
font-size: clamp(1rem, 3vw, 2.5rem);

/* Responsiv bredd med gränser */
width: clamp(300px, 50%, 800px);
min() och max()
min(400px, 80%)
max(200px, 30%)
/* min() — väljer det minsta värdet */
width: min(400px, 80%); /* aldrig bredare än 400px */

/* max() — väljer det största värdet */
width: max(200px, 30%); /* aldrig smalare än 200px */
Sammanfattning

Vilken enhet ska jag använda?

En snabbguide för att välja rätt enhet i rätt situation.

SituationRekommendationVarför
Font-storlekremRespekterar användarens webbläsarinställning
Spacing (margin/padding)rem eller emSkalar proportionellt med texten
Radbredd för textch45–75ch ger optimal läsbarhet
Bredd på containers% + max-width i px/remFlexibelt med ett tak
Fullskärmslayoutvh / dvhFyller viewporten exakt
Responsiv typograficlamp(rem, vw, rem)Skalas smidigt med gränser
Borders & skuggorpxSka inte ändras med textstorlek
IkoneremMatchar omgivande text automatiskt
Utskriftmm / cm / ptFysiska mått för papper
🎯 Tumregel: Använd rem som bas, % för layout, px för detaljer, och clamp() för att göra allt responsivt. Undvik em utom för komponenter som ska skala relativt sin kontext.

Reklam