Which iPhones are supported by media queries in 2023?

Max-width vs Max-device-width: Hvad er forskellen?

15/01/2024

Rating: 4.75 (16829 votes)

At navigere i verdenen af responsivt webdesign kan ofte føles som at krydse et minefelt af tekniske termer. To begreber, der ofte skaber forvirring, er max-width og max-device-width. Selvom de lyder ens, har de markant forskellige implikationer for, hvordan dine websider vises på tværs af forskellige enheder. I denne artikel vil vi dykke ned i disse forskelle, afmystificere begreberne og give dig den viden, du behøver for at træffe informerede beslutninger i din webudviklingsproces.

How high can a smartphone screen be?
Smartphone screens have come a long way since then, with the latest iPhones offering up to 1242x2688 pixels and 485 DPI (the iPhone XS Max). We're not a million miles from the maximum resolution discernible by the human eye. According to FluidUI, that limit is around 2190 DPI for a screen held at 4 inches for an average adult.

Mange webudviklere, inklusive mig selv, har brugt tid på at kæmpe med disse koncepter og ikke mindst forvirringen mellem enhedspixels og CSS-pixels. Mit mål er at dele min erfaring og forhåbentlig hjælpe andre med at undgå de samme faldgruber.

Indholdsfortegnelse

Hvad er Max-width?

Max-width refererer til bredden af det aktuelle visningsområde, som brugeren ser. På en desktop-computer er dette typisk browserens vinduesbredde. Når du ændrer størrelsen på dit browser vindue på en desktop, vil en hjemmeside, der bruger max-width i sine media queries, reagere på disse ændringer. Dette betyder, at designet kan tilpasse sig, og du kan se forskellige styling-regler aktiveret, som om du var på en mindre skærm – for eksempel at et touch-venligt menu dukker op.

Forestil dig, at du har sat en regel som:

@media screen and (max-width: 768px) { /* CSS regler for skærme op til 768px bredde */ .menu { display: none; } .mobil-menu { display: block; } }

Hvis du besøger denne side på din desktop og minimerer browser vinduet til under 768px bredde, vil .menu blive skjult, og .mobil-menu vil blive vist. Dette er kernen i responsivitet – at designet tilpasser sig brugerens aktuelle visningsområde.

Hvad er Max-device-width?

Max-device-width, derimod, refererer til den faktiske bredde af enhedens fysiske skærm. Uanset om du ændrer størrelsen på dit browser vindue på en desktop, vil en media query, der bruger max-device-width, ikke ændre sig. Den er låst til enhedens hardware-specifikke bredde.

Hvis vi bruger det samme eksempel, men med max-device-width:

@media screen and (max-device-width: 768px) { /* CSS regler for enheder med en skærmbredde op til 768px */ .menu { display: none; } .mobil-menu { display: block; } }

På en desktop vil denne regel kun aktiveres, hvis din computers skærm i sig selv er 768px bred eller mindre. At ændre størrelsen på browser vinduet vil ikke påvirke, hvilken stil der vises, da det ikke ændrer enhedens faktiske skærmbredde.

Hvilken skal du bruge?

Valget mellem max-width og max-device-width afhænger af dit specifikke behov. Personligt foretrækker jeg at bruge max-width i de fleste tilfælde. Årsagen er, at det giver en mere ægte responsiv oplevelse, selv på desktops. Det tillader designet at tilpasse sig brugerens interaktion med browseren, hvilket ofte er ønskeligt.

Der er dog situationer, hvor max-device-width kan være mere hensigtsmæssigt. En af de mest oplagte er, når du ønsker at opretholde en konsistent oplevelse, uanset hvordan brugeren interagerer med vinduet. Et godt eksempel er visse billedgallerier eller sliders, der er designet til at vise billeder i en bestemt opløsning, som passer optimalt til enhedens skærm. Hvis et billede allerede er indlæst og er optimeret til en bestemt enhed, vil du måske ikke have, at det skifter størrelse, blot fordi brugeren ændrer browser vinduet på en desktop. I sådanne tilfælde kan max-device-width være den rigtige løsning, da den forbliver tro mod enhedens faktiske skærmstørrelse.

Portræt- og Landskabstilstand

Det er vigtigt at være opmærksom på, hvordan enheder håndterer orientering. For mange populære enheder som iPhones og iPads, vil max-device-width og max-width ofte svare til enhedens bredde i portrættilstand (f.eks. 320px for iPhone, 768px for iPad), uanset om enheden er drejet. Andre enheder kan derimod ændre disse værdier baseret på orienteringen.

Hvis du specifikt ønsker at målrette mod enhedens orientering, kan du kombinere dine media queries:

@media screen and (max-device-width: 640px) and (orientation: landscape) { /* CSS regler for enheder med skærmbredde op til 640px i liggende tilstand */ .indhold { column-count: 2; } }

Dette giver dig mulighed for at skræddersy din websides udseende præcist til, hvordan brugeren holder sin enhed.

Forvirring mellem enhedspixels og CSS-pixels

En anden kilde til forvirring opstår ofte, når man taler om skærmopløsninger. Tag iPhone som eksempel:

  • iPhone 3: 320x480 pixels
  • iPhone 4: 640x960 pixels
  • iPhone 5: 640x1136 pixels

Forskellen her skyldes Retina-skærme (eller lignende teknologier), der pakker flere fysiske enhedspixels ind i hver CSS-pixel. Dette betyder, at en iPhone 4 har dobbelt så mange fysiske pixels på tværs af bredden som en iPhone 3, men de mapper stadig til det samme antal CSS-pixels, når man definerer media queries.

Det gode nyhed er, at du normalt ikke behøver at bekymre dig om denne forskel. Når du bruger max-device-width eller max-width i CSS media queries, baseres værdierne typisk på CSS-pixels, ikke de fysiske enhedspixels. Dette forenkler processen betydeligt, da du kan fokusere på den effektive plads, der er tilgængelig for indholdet.

I de sjældne tilfælde, hvor du absolut ønsker at anvende forskellig styling baseret på enhedspixels, kan du gøre det ved at udnytte specifikke præfikser, som f.eks. `-webkit-min-device-pixel-ratio`:

/* Specifik styling for enheder med Retina-skærm (f.eks. iPhone 4/5) */ @media screen and (max-width: 480px) and (-webkit-min-device-pixel-ratio: 2) { .ikon { background-image: url('ikon-retina.png'); background-size: 32px 32px; } }

Her vil denne media query kun blive aktiveret på enheder, der har en skærmbredde på 480 CSS-pixels eller mindre, OG som har en pixeltæthed på mindst 2 enhedspixels pr. CSS-pixel (hvilket indikerer en Retina-skærm).

Sammenligningstabel

For at opsummere de vigtigste forskelle:

EgenskabMax-widthMax-device-width
Hvad den målerBredden af det aktuelle visningsområde (browser vindue)Bredden af enhedens fysiske skærm
Reaktion på vinduesændringer (Desktop)Ja, stilen tilpasser sigNej, stilen forbliver den samme
Typisk brugGenerel responsivitet, tilpasning til brugerens viewportSpecifikke scenarier, hvor enhedens hardware-bredde er afgørende, f.eks. billedoptimering
Orientering (visse enheder)Kan ændre sig med enhedens orienteringOfte fastlåst til portrætbredde, uanset orientering

Konklusion

Forståelsen af forskellen mellem max-width og max-device-width er fundamental for at skabe effektive og velfungerende responsive websites. Mens max-width giver den mest dynamiske og brugercentrerede responsivitet ved at reagere på browserens størrelse, tilbyder max-device-width en mere hardware-specifik tilgang, der kan være nyttig i niche-situationer.

Som en generel regel er det sikreste og mest fleksible valg at anvende max-width. Det sikrer, at dit design altid tilpasser sig den plads, brugeren rent faktisk har til rådighed, hvilket resulterer i en bedre brugeroplevelse på tværs af et bredere spektrum af enheder og interaktionsformer. Overvej kun max-device-width, når du har en meget specifik grund til at binde din styling til enhedens faste skærmdimensioner.

Husk altid at teste dine designs grundigt på forskellige enheder og i forskellige browser-størrelser for at sikre, at de opfører sig som forventet. Ved at mestre disse begreber kan du tage din webudvikling til næste niveau og levere enestående brugeroplevelser.

Hvis du vil læse andre artikler, der ligner Max-width vs Max-device-width: Hvad er forskellen?, kan du besøge kategorien Teknologi.

Go up