16/04/2023
I en verden, hvor mobile enheder dominerer internetbrugen, er det essentielt for enhver webudvikler at kunne skabe responsive websites. Et responsivt design sikrer, at din hjemmeside ser godt ud og fungerer optimalt på tværs af alle skærmstørrelser, fra store desktops til små smartphones. En af de mest kraftfulde værktøjer i din arsenal til at opnå dette er CSS Media Queries. Denne artikel vil dykke ned i, hvordan du effektivt kan definere og anvende media queries for at optimere din brugeroplevelse, især når det kommer til visuelt indhold som baggrundsbilleder.

Hvad er CSS Media Queries?
CSS Media Queries er en CSS-funktion, der tillader dig at anvende forskellige stilarter baseret på bestemte egenskaber ved enheden, der viser indholdet. Disse egenskaber kan omfatte skærmbredde, højde, opløsning, orientering (portræt eller landskab) og meget mere. Med media queries kan du skræddersy dit design til at reagere dynamisk på brugerens omstændigheder.
Grundlæggende syntaks for Media Queries
Den grundlæggende syntaks for en media query ser således ud:
@media medietype and (egenskab: værdi) { /* CSS-regler her */ }- @media: Dette er nøgleordet, der starter en media query.
- medietype: Angiver typen af medie, f.eks.
screen(for computerskærme, tablets og smartphones),print(for udskrift) ellerall(alle mediatyper). - and: Bruges til at kombinere flere betingelser. Du kan også bruge
nottil at negere en betingelse ogortil at kombinere betingelser (selvomander mest almindeligt). - (egenskab: værdi): Dette er selve forespørgslen. Populære egenskaber inkluderer:
width: Bredden af visningsområdet (viewport).height: Højden af visningsområdet.max-width: Maksimal bredde af visningsområdet. Bruges ofte til at definere breakpoints for mindre skærme.min-width: Minimal bredde af visningsområdet. Bruges ofte til at definere breakpoints for større skærme.orientation: Angiver enhedens orientering, entenportraitellerlandscape.resolution: Enhedens opløsning.
Anvendelse af Media Queries til Baggrundsbilleder
Et almindeligt scenarie, hvor media queries er uundværlige, er håndteringen af baggrundsbilleder på tværs af forskellige enheder. Store, detaljerede billeder, der ser fantastiske ud på en stor skærm, kan være for tunge eller blive beskåret uheldigt på en smartphone. Med media queries kan du levere optimerede billeder til specifikke skærmstørrelser.
Eksempel: Skift af baggrundsbillede baseret på skærmbredde
Lad os sige, at du har et bredt landskabsbillede til desktops og et mere vertikalt eller fokuseret billede til mobile enheder. Du kan implementere det således:
body { background-image: url('desktop-background.jpg'); background-size: cover; background-repeat: no-repeat; background-attachment: fixed; } @media only screen and (max-width: 768px) { body { background-image: url('tablet-background.jpg'); } } @media only screen and (max-width: 480px) { body { background-image: url('mobile-background.jpg'); } } I dette eksempel:
- Alle enheder vil som standard få vist
desktop-background.jpg. - For enheder med en maksimal bredde på 768 pixels (typisk tablets og mindre desktops) skifter baggrundsbilledet til
tablet-background.jpg. - For enheder med en maksimal bredde på 480 pixels (typisk smartphones) skifter baggrundsbilledet til
mobile-background.jpg.
Det er vigtigt at vælge dine breakpoints (de skærmbredder, hvor dine stilarter ændrer sig) med omhu. De bør baseres på dit indholds design og ikke nødvendigvis på specifikke enhedsmodeller, da der findes et utal af forskellige enheder.
Avancerede Media Query-teknikker
Udover enkel billedskiftning kan media queries bruges til at justere layout, skriftstørrelser, synlighed af elementer og meget mere.

Orientering
Du kan også reagere på enhedens orientering:
@media only screen and (orientation: landscape) { /* Stilarter for landskabsformat */ .container { width: 90%; } } @media only screen and (orientation: portrait) { /* Stilarter for portrætformat */ .container { width: 100%; } } Opløsning
For at optimere billeder til skærme med høj opløsning (Retina-skærme) kan du bruge min-resolution:
.logo { background-image: url('logo-standard.png'); } @media only screen and (-webkit-min-device-pixel-ratio: 2), only screen and (min-resolution: 192dpi) { .logo { background-image: url('logo-retina.png'); background-size: contain; } } Denne query sikrer, at brugere med højopløselige skærme får vist en skarpere version af logoet.
Udfordringer med Mobilskærmopløsninger og Toolbars
Du nævner et ønske om en matrix for realistiske skærmtilgængeligheder, der tager højde for toolbars. Dette er en kompleks udfordring, da den faktiske synlige skærmstørrelse kan variere betydeligt afhængigt af:
- Browseren: Forskellige browsere (Chrome, Safari, Firefox) viser deres egne UI-elementer (adresserække, faner, knapper) forskelligt.
- App-specifikke UI-elementer: Når en hjemmeside vises i en app-browser (f.eks. Facebook-appen eller Twitter-appen), vil disse apps ofte tilføje deres egne overlappende elementer.
- Operativsystemets UI: Statuslinjer (med tid, batteri osv.) og navigationslinjer (på Android) optager også plads.
- Brugerindstillinger: Nogle brugere kan vælge at skjule eller vise browserens UI-elementer.
Der findes ikke én universel matrix, der præcist kan forudsige den tilgængelige plads på alle enheder i alle situationer. Den mest pålidelige tilgang er at:
- Fokusere på breakpoints baseret på indhold: Lad dit indhold diktere, hvornår ændringer skal ske. Start bredt og indsnævr ind, indtil dit indhold ser bedst ud.
- Bruge relative enheder: Brug
%,emogremi stedet for faste pixels, hvor det er muligt, for at tillade elementer at skalere naturligt. - Test grundigt på rigtige enheder: Den bedste måde at sikre, at dit design fungerer, er at teste det på et bredt udvalg af fysiske enheder og browsere. Værktøjer som Chrome DevTools' Device Mode er gode til simulation, men erstatter ikke rigtig test.
- Overvej den "sikre" viewport: Når du designer for baggrundsbilleder, der skal være fuldt synlige, kan det være en god idé at antage en lidt mindre synlig højde end den faktiske enhedshøjde for at tage højde for UI-elementer.
Opsummering af almindelige Breakpoints
Selvom det er bedst at basere breakpoints på indhold, er her nogle generelle retningslinjer, der ofte bruges:
| Enhedstype (generel) | Typisk Breddeinterval | CSS Media Query Eksempel |
|---|---|---|
| Smartphones (små) | Op til 320px | @media only screen and (max-width: 320px) |
| Smartphones (gennemsnitlige) | 321px - 480px | @media only screen and (min-width: 321px) and (max-width: 480px) |
| Smartphones (store) / Phablets | 481px - 767px | @media only screen and (min-width: 481px) and (max-width: 767px) |
| Tablets (portræt) | 768px - 1024px | @media only screen and (min-width: 768px) and (max-width: 1024px) |
| Tablets (landskab) / Laptops | 1025px - 1200px | @media only screen and (min-width: 1025px) and (max-width: 1200px) |
| Desktops | Over 1201px | @media only screen and (min-width: 1201px) |
Disse er blot eksempler, og du bør justere dem baseret på dit specifikke designbehov. Det er ofte mere effektivt at arbejde med mobile-first design, hvor du starter med stilarter for de mindste skærme og derefter bruger min-width queries til at tilføje stilarter for større skærme.
Eksempel på Mobile-First med Baggrundsbilleder
body { /* Standard stilarter for små skærme (mobile-first) */ background-image: url('mobile-background.jpg'); background-size: cover; background-repeat: no-repeat; } @media only screen and (min-width: 768px) { /* Stilarter for tablets og større */ body { background-image: url('tablet-background.jpg'); } } @media only screen and (min-width: 1200px) { /* Stilarter for desktops */ body { background-image: url('desktop-background.jpg'); } } Denne tilgang er ofte mere skalerbar og nemmere at vedligeholde.
Konklusion
CSS Media Queries er et uundværligt værktøj for enhver, der ønsker at skabe moderne, responsive websites. Ved at forstå syntaksen og anvende den strategisk kan du sikre, at dit indhold, herunder vigtige baggrundsbilleder, præsenteres optimalt på enhver enhed. Husk at teste grundigt og fokusere på at lade dit indhold guide dine designbeslutninger. Mestring af media queries er nøglen til en succesfuld brugeroplevelse i den mobile æra.
Ofte Stillede Spørgsmål (FAQ)
- Hvad er det vigtigste ved media queries?
- Evnen til at anvende forskellige CSS-regler baseret på enhedens egenskaber som bredde, højde og opløsning.
- Hvordan skifter jeg baggrundsbillede på en mobiltelefon?
- Brug en media query med
max-widthtil at definere en mindre skærmstørrelse og angiv et andetbackground-imageinden for den query. - Hvad er et breakpoint?
- Et breakpoint er en skærmbredde, hvor designet ændres for at passe bedre til den pågældende enhedsstørrelse.
- Er der en liste over alle mobilskærmstørrelser?
- Der findes ingen komplet, udtømmende liste, da der konstant kommer nye enheder. Det er bedre at basere breakpoints på dit indholds behov og teste på forskellige enheder.
- Hvad betyder "mobile-first"?
- Det er en designmetode, hvor man starter med at designe til de mindste skærme (mobiltelefoner) og derefter gradvist tilføjer stilarter for større skærme ved hjælp af
min-widthmedia queries.
Hvis du vil læse andre artikler, der ligner CSS Media Queries for Mobile Design, kan du besøge kategorien Teknologi.
