What is a CSS media query?

CSS Media Queries for Mobile Design

16/04/2023

Rating: 4.08 (8494 votes)

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.

What is the default zoom for mobile devices?
This codeline defines the default zoom for mobile devices. '@media screen and (max-width: 481px)' defines the CSS layout for screen sizes with 481px max. (CSS Resolution) and below. For example a FullHD smartphone (portrait view) has a width of 1080 pixels, but it's not the same like the CSS-resolution.
Indholdsfortegnelse

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) eller all (alle mediatyper).
  • and: Bruges til at kombinere flere betingelser. Du kan også bruge not til at negere en betingelse og or til at kombinere betingelser (selvom and er 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, enten portrait eller landscape.
    • 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.

What is responsive web design?

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:

  1. 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.
  2. Bruge relative enheder: Brug %, em og rem i stedet for faste pixels, hvor det er muligt, for at tillade elementer at skalere naturligt.
  3. 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.
  4. 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 BreddeintervalCSS 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) / Phablets481px - 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) / Laptops1025px - 1200px@media only screen and (min-width: 1025px) and (max-width: 1200px)
DesktopsOver 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-width til at definere en mindre skærmstørrelse og angiv et andet background-image inden 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-width media queries.

Hvis du vil læse andre artikler, der ligner CSS Media Queries for Mobile Design, kan du besøge kategorien Teknologi.

Go up