01/12/2023
I en verden, hvor mobile enheder dominerer internettrafikken, er det altafgørende, at din hjemmeside præsenteres fejlfrit på alle skærmstørrelser. Specielt for iPhone- og iPad-brugere kan oplevelsen variere markant, afhængigt af hvordan din side er optimeret. Sidste uge dykkede vi ned i, hvordan du kan teste din hjemmeside på Safari for iPhone og iPad. Denne uge tager vi skridtet videre og udforsker et af de mest fundamentale værktøjer til mobiloptimering: viewport meta-tagget. Dette tag er hjørnestenen i at sikre, at din hjemmeside ikke blot ser godt ud, men også fungerer intuitivt, uanset om enheden holdes i portræt- eller landskabsformat. Vi vil guide dig gennem brugen af meta-tags, JavaScript og CSS for at opnå den perfekte visning på Apples populære mobile enheder.

Hvad er Viewport Meta-tagget?
Viewport meta-tagget er en afgørende HTML-komponent, der fortæller mobile browsere, specifikt Safari på iOS, hvordan de skal gengive din webside. Uden det vil din hjemmeside sandsynligvis blive vist i en standard desktop-bredde (ofte 980 pixels), hvilket tvinger brugere til at zoome ind og panorere rundt for at læse indholdet. Dette skaber en frustrerende brugeroplevelse. Ved at implementere viewport meta-tagget får du kontrol over, hvordan siden skaleres og vises på tværs af forskellige skærmstørrelser og -orienteringer på iPhone og iPad. Det handler om at give brugeren en flydende og responsiv oplevelse, der matcher enhedens specifikke dimensioner.
Viewport Egenskaber og Deres Betydning
Viewport meta-tagget understøtter en række egenskaber, der giver dig finjusteret kontrol over din hjemmesides præsentation. Disse egenskaber defineres inden for content-attributten og adskilles af kommaer. At forstå hver enkelt er nøglen til en vellykket mobiloptimering.
De vigtigste egenskaber inkluderer:
width: Definerer viewportets bredde. Standard er 980 pixels. Det anbefales ofte at brugedevice-widthfor at matche enhedens faktiske bredde.height: Definerer viewportets højde. Standard er baseret på billedformatet.initial-scale: Angiver den indledende zoomniveau, når siden indlæses. En værdi på 1.0 betyder ingen zoom.user-scalable: Bestemmer, om brugeren kan zoome ind eller ud på siden. Sæt tilnofor at deaktivere zoom.minimum-scale: Den mindste tilladte zoomniveau.maximum-scale: Den største tilladte zoomniveau.
Her er en oversigt over de vigtigste egenskaber for viewport meta-tagget:
| Egenskab | Standardværdi | Minimumværdi | Maksimumværdi |
|---|---|---|---|
width | 980 | 200 | 10000 |
height | Baseret på billedformat | 223 | 10000 |
initial-scale | Tilpasses skærmen | >0 | 10 |
user-scalable | yes | no | yes |
minimum-scale | 0.25 | >0 | 10 |
maximum-scale | 1.6 | >0 | 10 |
Det er vigtigt at bemærke, at initial-scale er det niveau, siden gengives på ved første indlæsning. Brugeren kan ændre skaleringen ved at knibe og dobbeltklikke, medmindre du begrænser det med user-scalable.
Optimering af Din Hjemmeside med Viewport Meta-tagget
Den mest fundamentale optimering er at sætte bredden af viewportet til at matche enhedens bredde. Dette sikrer, at din hjemmeside automatisk tilpasser sig skærmen, hvilket er essentielt for en responsiv oplevelse. I stedet for en fast bredde bør du bruge width=device-width. Dette fortæller browseren, at den skal indstille viewportets bredde til enhedens faktiske bredde i CSS-pixels.
Eksempel på grundlæggende viewport-indstilling:
<meta name="viewport" content="width=device-width">For at forhindre brugere i at zoome ind og ud – hvilket kan være ønskeligt for fuldt responsive eller webapplikationslignende sider – kan du sætte maximum-scale til 1.0 og user-scalable til no. Vær forsigtig med denne tilgang, da den fjerner brugerens mulighed for at forstørre indhold, hvilket kan være en barriere for brugere med synshandicap eller på meget små skærme. Hvis din side ikke er perfekt optimeret til små skærme, anbefales det at lade zoomfunktionen være aktiv.

Eksempel for at deaktivere zoom:
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">Hvis du kun angiver en delmængde af egenskaberne, vil Safari på iOS ofte udlede de resterende værdier for at forsøge at passe websiden ind i det synlige område. For eksempel, hvis du kun sætter initial-scale til 1.0, vil Safari antage, at bredden er device-width i portræt og device-height i landskab. Derfor, hvis du ønsker en specifik bredde (f.eks. 980 pixels) og en initial skalering på 1.0, skal du angive begge.
Håndtering af Skærmorientering
Udover meta-tags, som er den foretrukne metode, kan du også bruge JavaScript og CSS til at detektere og tilpasse indholdet baseret på enhedens orientering. Dette giver dig yderligere fleksibilitet i designet.
JavaScript til Orientering
Mens meta-tags er fremragende til den indledende visning, kan JavaScript bruges til dynamisk at reagere på orienteringsændringer. Ved at overvåge vinduets indre bredde kan du bestemme, om enheden er i portræt- eller landskabsformat og justere layoutet derefter.
Eksempel på JavaScript for orienteringsdetektion (placeres i <head>):
<script type="text/javascript"> var currentWidth = window.innerWidth; var updateLayout = function() { if (window.innerWidth != currentWidth) { currentWidth = window.innerWidth; var orient = (currentWidth == 320) ? "profile": "landscape"; document.body.setAttribute("orient", orient); window.scrollTo(0, 1); } }; // Antager en eksisterende funktion iPhone.DomLoad eller lignende // iPhone.DomLoad(updateLayout); setInterval(updateLayout, 400); // Tjekker hver 0.4 sekund </script>Denne kode opdaterer layoutet og tilføjer en orient-attribut til body-elementet, som du derefter kan style med CSS. Bemærk, at window.innerWidth kan give den aktuelle bredde, og du kan tilpasse logikken baseret på forventede enhedsbredder (f.eks. 320px for portræt på ældre iPhones).
CSS Media Queries til Orientering
Den mest elegante og moderne måde at håndtere orientering på er ved hjælp af CSS Media Queries. Du kan oprette separate stylesheets for portræt- og landskabsformat, hvilket giver dig komplet kontrol over designet i hver tilstand. Dette holder din præsentationslogik adskilt fra din HTML.
Eksempel på CSS Media Queries (placeres i <head>):
<link rel="stylesheet" media="all and (orientation:portrait)" href="portrait.css"> <link rel="stylesheet" media="all and (orientation:landscape)" href="landscape.css">Her vil portrait.css kun blive anvendt, når enheden er i portrættilstand, og landscape.css når den er i landskabstilstand. Dette er en utrolig kraftfuld teknik til at skabe en tilpasset brugeroplevelse.

Forskellen mellem Viewport på Desktop og iOS
Det er vigtigt at forstå, at viewport-konceptet adskiller sig markant mellem traditionelle desktop-browsere og Safari på iOS. På en desktop er viewportet simpelthen det synlige område af websiden, som brugeren kan ændre størrelse på ved at trække i browservinduet. Hvis siden er større end viewportet, vises rullepaneler, og brugeren scroller for at se mere.
På iOS er situationen mere nuanceret. Safari på iOS har ingen vinduer, rullepaneler eller knapper til at ændre størrelse. Brugeren panorerer ved at stryge en finger, og zoomer ind/ud ved at knibe (pinch-open/pinch-close) eller dobbeltklikke. Viewportet på iOS er det område, der bestemmer, hvordan indholdet placeres, og hvor tekst ombrydes. Dette viewport kan være større eller mindre end det synlige område. Når en bruger panorerer, kan grå bjælker vises for at indikere viewportets størrelse i forhold til det synlige område.
Den største forskel ligger i, hvordan Safari på iOS tilpasser viewportet. Standardbredden er ofte 980 pixels, hvilket er designet til at vise de fleste desktop-sider uden for meget indledende zoom. Men hvis din side er smallere end dette, kan den virke for smal. Ved at konfigurere viewportet kan du overskrive disse standardindstillinger og sikre, at din side præsenteres optimalt fra start. Safari på iOS kan også udlede værdier for width, height og initial-scale, hvis du kun angiver nogle af dem, med det formål at få websiden til at passe ind i det synlige område ved fuld udzoomning. Dette kan medføre, at viewportet ændrer størrelse, når brugeren skifter orientering, hvilket er den eneste situation, hvor en brugerhandling direkte ændrer layoutet på iOS.
Vigtige Overvejelser for Webapplikationer
Hvis du designer en webapplikation specifikt til iOS, er den anbefalede størrelse for dine websider den samme som det synlige område på iOS. Apple anbefaler kraftigt, at du sætter bredden til device-width. Dette sikrer, at den indledende skalering er 1.0 i portrætformat, og at viewportet ikke ændrer størrelse, når brugeren skifter til landskabsformat. Uden denne indstilling vil din webapp sandsynligvis blive vist i øverste venstre hjørne, hvilket tvinger brugeren til at zoome ind, før applikationen kan bruges korrekt.
Eksempel for webapplikationer (med deaktiveret skalering):
<meta name="viewport" content="user-scalable=no, width=device-width, initial-scale=1.0">Denne indstilling sikrer en fuldskærmsoplevelse, der føles som en indbygget applikation. Ved at deaktivere brugerskalering garanterer du, at din præcist designede grænseflade altid vises, som du har tiltænkt.

Ofte Stillede Spørgsmål (FAQ)
Hvad er formålet med viewport meta-tagget?
Formålet med viewport meta-tagget er at give webudviklere kontrol over, hvordan en webside skaleres og vises på mobile enheder, især iPhone og iPad. Det sikrer en optimal og responsiv brugeroplevelse ved at tilpasse sidens bredde og skalering til enhedens skærm.
Hvilke egenskaber er vigtigst at kende?
De mest essentielle egenskaber er width (især device-width), initial-scale, og user-scalable. Disse tre giver dig den primære kontrol over sidens indledende udseende og brugerens interaktionsmuligheder med skalering.
Hvordan forhindrer jeg brugere i at zoome?
Du kan forhindre brugere i at zoome ved at sætte user-scalable=no og maximum-scale=1.0 i dit viewport meta-tag. For eksempel: <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">. Husk dog, at dette kan påvirke brugervenligheden negativt for nogle brugere.
Hvor skal jeg placere viewport meta-tagget?
Viewport meta-tagget skal placeres inden for <head>-sektionen af dit HTML-dokument. Det er vigtigt, at det er en af de første tags i <head> for at sikre, at browseren anvender indstillingerne korrekt fra start.
Hvad betyder "device-width"?
device-width er en speciel værdi for width-egenskaben, der fortæller browseren, at viewportets bredde skal sættes til den faktiske bredde af enhedens skærm i CSS-pixels. Dette er afgørende for at skabe et responsivt design, der tilpasser sig dynamisk til forskellige skærmstørrelser.
At mestre viewport meta-tagget er en fundamental færdighed for enhver, der ønsker at skabe moderne, mobilvenlige hjemmesider og webapplikationer. Ved at udnytte dets egenskaber i kombination med JavaScript og CSS Media Queries kan du sikre, at dit indhold altid præsenteres optimalt på iPhone og iPad, uanset orientering eller skærmstørrelse. Dette forbedrer ikke kun brugeroplevelsen markant, men bidrager også til bedre søgemaskineplaceringer, da mobilvenlighed er en vigtig rangeringsfaktor. Fortsæt med at udforske disse teknikker, og din mobile tilstedeværelse vil blomstre!
Hvis du vil læse andre artikler, der ligner Optimer iPhone & iPad Visning med Viewport, kan du besøge kategorien Teknologi.
