Kurze Antwort
Das Gerätepixelverhältnis ist das Verhältnis zwischen physischen Pixeln und logischen Pixeln. Beispielsweise geben das iPhone 4 und das iPhone 4S ein Gerätepixelverhältnis von 2 an, da die physikalische lineare Auflösung doppelt so hoch ist wie die logische lineare Auflösung.
- Physikalische Auflösung: 960 x 640
- Logische Auflösung: 480 x 320
Die Formel lautet:
Wo:
ist die physikalische lineare Auflösung
und:
ist die logische lineare Auflösung
Andere Geräte melden unterschiedliche Gerätepixelverhältnisse, einschließlich nicht ganzzahliger. Das Nokia Lumia 1020 meldet beispielsweise 1,6667, das Samsumg Galaxy S4 3 und das Apple iPhone 6 Plus 2,46 (Quelle: dpilove ) . Dies ändert jedoch im Prinzip nichts, da Sie niemals für ein bestimmtes Gerät entwerfen sollten.
Diskussion
Das CSS- "Pixel" wird nicht einmal als "ein Bildelement auf einem Bildschirm" definiert, sondern als nichtlineare Winkelmessung des Betrachtungswinkels, der bei Armlänge ungefähr einen Zoll beträgt. Quelle: CSS Absolute Längen
Dies hat viele Auswirkungen auf das Webdesign, z. B. die Vorbereitung hochauflösender Bildressourcen und das sorgfältige Anwenden verschiedener Bilder mit unterschiedlichen Pixelverhältnissen des Geräts. Sie möchten ein Low-End-Gerät nicht zwingen, ein Bild mit sehr hoher Auflösung herunterzuladen, sondern es nur lokal zu verkleinern. Sie möchten auch nicht, dass High-End-Geräte Bilder mit niedriger Auflösung für eine verschwommene Benutzererfahrung hochskalieren.
Wenn Sie mit Bitmap-Bildern nicht weiterkommen, um viele verschiedene Gerätepixelverhältnisse zu berücksichtigen, sollten Sie CSS-Medienabfragen verwenden , um verschiedene Ressourcensätze für verschiedene Gerätegruppen bereitzustellen. Kombinieren Sie dies mit netten Tricks wie background-size: cover
oder setzen Sie die background-size
Prozentwerte explizit .
Beispiel
#element { background-image: url('lores.png'); }
@media only screen and (min-device-pixel-ratio: 2) {
#element { background-image: url('hires.png'); }
}
@media only screen and (min-device-pixel-ratio: 3) {
#element { background-image: url('superhires.png'); }
}
Auf diese Weise lädt jeder Gerätetyp nur die richtige Bildressource. Beachten Sie auch, dass die px
Einheit in CSS immer mit logischen Pixeln arbeitet .
Ein Fall für Vektorgrafiken
Da immer mehr Gerätetypen auftreten, wird es schwieriger, alle mit angemessenen Bitmap-Ressourcen zu versorgen. In CSS sind Medienabfragen derzeit die einzige Möglichkeit, und in HTML5 können Sie mit dem Bildelement verschiedene Quellen für verschiedene Medienabfragen verwenden. Die Unterstützung ist jedoch immer noch nicht 100%, da die meisten Webentwickler IE11 noch eine Weile länger unterstützen müssen ( Quelle: caniuse ) .
Wenn Sie gestochen scharfe Bilder für Symbole, Strichzeichnungen und Designelemente benötigen , die keine Fotos sind , müssen Sie über SVG nachdenken, das sich wunderbar auf alle Auflösungen skalieren lässt.
width=device-width
gebe und ich sie auf Vollbild strecken lasse?