Responsivt design
Responsivt design betyr at nettsiden tilpasser seg skjermstørrelsen - enten det er en mobil, nettbrett eller PC.
Viewport meta-tag
For at responsivt design skal fungere på mobil, må du ha denne linjen i <head>:
Viktig
Uten denne meta-taggen vil mobilen vise siden som en forminsket desktop-side. Se Dokumentstruktur for mer om <head>.
Media queries
Media queries lar deg bruke forskjellige CSS-regler basert på skjermstørrelsen:
/* Denne regelen gjelder bare for skjermer under 768px */
@media (max-width: 768px) {
.meny {
flex-direction: column;
}
}
Vanlige breakpoints
| Breakpoint | Enhet |
|---|---|
480px |
Små mobiler |
768px |
Nettbrett |
1024px |
Små skjermer / nettbrett i landskapsmodus |
1200px |
Desktop |
Mobile-first
Det finnes to tilnærminger til responsivt design:
Mobile-first: Du skriver CSS for mobil først, og legger til regler for større skjermer:
Hvorfor mobile-first?
Mobile-first (min-width) er anbefalt fordi det tvinger deg til å tenke på det viktigste innholdet først. Det er lettere å legge til kompleksitet enn å fjerne den.
Praktiske eksempler
Et rutenett med Flexbox som tilpasser seg:
Responsive enheter
| Enhet | Beskrivelse |
|---|---|
% |
Prosent av foreldreelementet |
vw |
Prosent av vinduets bredde (100vw = full bredde) |
vh |
Prosent av vinduets høyde (100vh = full høyde) |
rem |
Relativt til rot-fontstørrelsen (vanligvis 16px) |
em |
Relativt til foreldreelementets fontstørrelse |
.container {
width: 90%; /* 90% av forelderen */
max-width: 1200px; /* Aldri bredere enn 1200px */
margin: 0 auto; /* Sentrert */
}
h1 {
font-size: 2rem; /* 32px (2 × 16px) */
}
Tip
Bruk rem for fontstørrelser og % for bredder. Unngå faste px-verdier for ting som skal tilpasse seg.
Bilder
Bilder kan bli bredere enn skjermen på mobil. Bruk dette mønsteret:
Dette sørger for at bildet aldri blir bredere enn foreldreelementet, og at høyden skalerer proporsjonalt.
Teste responsivt design
Du kan teste responsivt design i nettleseren med utviklerverktøyene:
- Åpne DevTools (F12 eller høyreklikk → Inspiser)
- Klikk på enhetsverktøy-ikonet (mobilikon øverst til venstre i DevTools)
- Velg en enhet eller dra for å endre størrelsen
Tip
Du kan også endre nettleservinduets størrelse manuelt for å se hvordan layouten tilpasser seg.
Oppsummering
| Konsept | Beskrivelse |
|---|---|
<meta name="viewport"> |
Nødvendig for responsivt design på mobil |
@media (min-width: ...) |
Mobile-first media query |
@media (max-width: ...) |
Desktop-first media query |
%, vw, vh, rem |
Responsive enheter |
max-width: 100% |
Hindrer bilder fra å flyte over |
flex-wrap: wrap |
Lar flex-elementer bryte til ny rad |