Verwendung des Viewport-Meta-Elements
Dieser Artikel beschreibt, wie Sie das "viewport" <meta>
-Tag verwenden, um die Größe und Form des Viewports zu kontrollieren.
Hintergrund
Das Viewport eines Browsers ist der Bereich des Fensters, in dem Webinhalte sichtbar sind. Dieser Bereich entspricht oft nicht der Größe der gerenderten Seite. In einem solchen Fall stellt der Browser Scrollleisten zur Verfügung, mit denen der Benutzer durch den Inhalt navigieren und alles einsehen kann.
Einige mobile Geräte und andere schmale Bildschirme rendern Seiten in einem virtuellen Fenster oder Viewport, der in der Regel breiter als der Bildschirm ist, und verkleinern dann das gerenderte Ergebnis, sodass alles auf einmal zu sehen ist. Benutzer können dann zoomen und schwenken, um sich verschiedene Bereiche der Seite genauer anzusehen. Wenn ein mobiler Bildschirm beispielsweise eine Breite von 640px hat, könnten Seiten mit einem virtuellen Viewport von 980px gerendert und dann auf die 640px-Breite verkleinert werden.
Dies wird gemacht, weil nicht alle Seiten für Mobilgeräte optimiert sind und bei einer kleinen Viewport-Breite entweder kaputt gehen oder zumindest schlecht aussehen. Dieser virtuelle Viewport ist ein Weg, um nicht mobil-optimierte Seiten auf schmalen Bildschirmen generell besser darzustellen.
Diese Mechanik ist jedoch nicht so gut für Seiten, die mithilfe von Media Queries für schmale Bildschirme optimiert sind. Wenn der virtuelle Viewport beispielsweise 980px beträgt, werden Media Queries, die bei 640px oder 480px oder weniger wirken, nie verwendet, was die Effektivität solcher responsiven Designtechniken einschränkt. Das Viewport <meta>
-Element mildert dieses Problem des virtuellen Viewports auf schmalen Bildschirmen.
Grundlagen des Viewports
Der Viewport ist eine kommagetrennte Liste von Feature- und Wertpaaren. Eine typische mobil optimierte Seite enthält etwas wie das Folgende:
<meta name="viewport" content="width=device-width, initial-scale=1" />
Nicht alle Geräte haben die gleiche Breite; Sie sollten sicherstellen, dass Ihre Seiten in einer großen Variation von Bildschirmgrößen und -orientierungen gut funktionieren.
Die grundlegenden Attribute des "viewport"-<meta>
-Elements umfassen:
width
-
Kontrolliert die (Mindest-)Größe des Viewports (siehe Viewport-Breite und Bildschirmbreite). Es kann auf eine bestimmte Anzahl von Pixeln gesetzt werden, wie
width=600
oder auf den speziellen Wertdevice-width
, was die physische Größe des Gerätescreens in CSS-Pixeln ist. Dieser Wert legt den Wert dervw
Einheit fest. Minimum:1
. Maximum:10000
. Negative Werte: ignoriert. height
-
Kontrolliert die (Mindest-)Größe des Viewports (siehe Viewport-Breite und Bildschirmbreite). Es kann auf eine bestimmte Anzahl von Pixeln gesetzt werden, wie
height=400
oder auf den speziellen Wertdevice-height
, was die physische Größe des Gerätescreens in CSS-Pixeln ist. Dieser Wert legt den Wert dervh
Einheit fest. Minimum:1
. Maximum:10000
. Negative Werte: ignoriert. initial-scale
-
Kontrolliert die Zoomstufe, wenn die Seite zum ersten Mal geladen wird. Minimum:
0.1
. Maximum:10
. Standard:1
. Negative Werte: ignoriert. minimum-scale
-
Kontrolliert, wie stark das Herauszoomen auf der Seite erlaubt ist. Minimum:
0.1
. Maximum:10
. Standard:0.1
. Negative Werte: ignoriert. maximum-scale
-
Kontrolliert, wie stark das Hereinzoomen auf der Seite erlaubt ist. Jeder Wert unter 3 ist nicht zugänglich. Minimum:
0.1
. Maximum:10
. Standard:10
. Negative Werte: ignoriert. user-scalable
-
Kontrolliert, ob Zoom-In- und Zoom-Out-Aktionen auf der Seite erlaubt sind. Gültige Werte:
0
,1
,yes
oderno
. Standard:1
, was dasselbe wieyes
ist. Den Wert auf0
zu setzen, was dasselbe wieno
ist, verstößt gegen die Web Content Accessibility Guidelines (WCAG). interactive-widget
-
Gibt an, welche Wirkung interaktive UI-Widgets, wie z.B. eine virtuelle Tastatur, auf die Viewports der Seite haben. Gültige Werte:
resizes-visual
,resizes-content
oderoverlays-content
. Standard:resizes-visual
.
Warnung:
Die Verwendung von user-scalable=no
kann Barrierefreiheitsprobleme bei Nutzern mit Sehbehinderungen wie z.B. schwacher Sehkraft verursachen. WCAG erfordert ein Minimum von 2× Skalierung; jedoch ist es die beste Praxis, einen 5× Zoom zu ermöglichen.
Bildschirmdichte
Bildschirmauflösungen sind auf eine Größe gestiegen, bei der einzelne Pixel mit dem bloßen Auge nicht mehr unterscheidbar sind. Beispielsweise haben Smartphones oft kleine Displays mit Auflösungen von über 1920–1080 Pixeln (≈400dpi). Deshalb können viele Browser ihre Seiten in einer kleineren physischen Größe anzeigen, indem sie mehrere Hardware-Pixel für jedes CSS-"Pixel" übersetzen. Anfänglich verursachte dies Probleme bei der Nutzbarkeit und Lesbarkeit auf vielen touch-optimierten Websites.
Auf Bildschirmen mit hoher dpi werden Seiten mit initial-scale=1
von Browsern effektiv gezoomt. Ihr Text wird glatt und scharf, aber ihre Bitmap-Bilder nutzen möglicherweise nicht die volle Bildschirmauflösung. Um schärfere Bilder auf diesen Bildschirmen zu erhalten, möchten Webentwickler möglicherweise Bilder oder ganze Layouts in einem höheren Maßstab als ihre endgültige Größe entwerfen und sie dann mit CSS oder Viewport-Eigenschaften herunterskalieren.
Das Standard-Pixel-Verhältnis hängt von der Displaydichte ab. Bei einem Display mit einer Dichte von weniger als 200dpi beträgt das Verhältnis 1,0. Bei Displays mit Dichte zwischen 200 und 300dpi beträgt das Verhältnis 1,5. Bei Displays mit einer Dichte von über 300dpi ist das Verhältnis der ganzzahlige Boden (dichte/150dpi). Beachten Sie, dass das Standardverhältnis nur dann zutrifft, wenn der Viewport-Skalierungsfaktor 1 beträgt. Andernfalls hängt die Beziehung zwischen CSS-Pixeln und Geräte-Pixeln vom aktuellen Zoomfaktor ab.
Viewport-Breite und Bildschirmbreite
Webseiten können ihren Viewport auf eine bestimmte Größe setzen. Zum Beispiel kann die Definition "width=320, initial-scale=1"
verwendet werden, um perfekt auf ein kleines Handy-Display im Hochformat zu passen. Dies kann Probleme verursachen, wenn der Browser eine Seite in einer größeren Größe rendert. Um dies zu beheben, erweitern Browser die Viewport-Breite bei Bedarf, um den Bildschirm in der angeforderten Skalierung zu füllen. Dies ist besonders nützlich auf Geräten mit großen Bildschirmen.
Für Seiten, die eine anfängliche oder maximale Skalierung festlegen, bedeutet dies, dass die width
-Eigenschaft tatsächlich in eine minimale Viewport-Breite übersetzt wird. Wenn Ihr Layout beispielsweise mindestens 500 Pixel Breite benötigt, können Sie das folgende Markup verwenden. Wenn der Bildschirm breiter als 500 Pixel ist, wird der Browser den Viewport erweitern (anstatt heranzuzoomen), um den Bildschirm zu füllen:
<meta name="viewport" content="width=500, initial-scale=1" />
Andere Attribute, die verfügbar sind, sind minimum-scale
, maximum-scale
und user-scalable
. Diese Eigenschaften beeinflussen die anfängliche Skalierung und Breite sowie die Begrenzung von Änderungen des Zoomniveaus.
Die Auswirkungen von interaktiven UI-Widgets
Interaktive UI-Widgets des Browsers können die Größe der Viewports der Seite beeinflussen. Das häufigste dieser UI-Widgets ist eine virtuelle Tastatur. Um zu steuern, welches Größenänderungsverhalten der Browser verwenden soll, setzen Sie die Eigenschaft interactive-widget
.
Zulässige Werte sind:
resizes-visual
-
Der visuelle Viewport wird durch das interaktive Widget verändert.
resizes-content
-
Das Viewport wird durch das interaktive Widget verändert.
overlays-content
-
Weder das Viewport noch der visuelle Viewport wird durch das interaktive Widget verändert.
<meta name="viewport" content="interactive-widget=resizes-content" />
Wenn das Viewport verändert wird, wird auch der initiale enthältende Block verändert, wodurch die berechnete Größe von Viewport-Einheiten beeinflusst wird.
Übliche Viewport-Größen für Mobil- und Tabletgeräte
Wenn Sie wissen möchten, welche Mobil- und Tabletgeräte welche Viewport-Breiten haben, gibt es eine umfassende Liste von Viewport-Größen für Mobil- und Tabletgeräte hier. Diese liefert Informationen wie die Viewport-Breite in Hoch- und Querformat sowie die physische Bildschirmgröße, das Betriebssystem und die Pixeldichte des Geräts.
Spezifikationen
Specification |
---|
CSS Viewport Module Level 1 # viewport-meta |