TL; DR
Wenn Sie eine reaktionsschnelle Website erstellen, verwenden Sie min-width
/ max-width
in Ihren Medienabfragen anstelle von min-device-width
/, max-device-width
um einen größeren Bereich von Bildschirmgrößen zu erreichen.
Gemäß dem Entwurf der Spezifikation für Medienabfragen der Stufe 4 für 2018 ist die device-width
Medienfunktion veraltet . Es wird aus Gründen der Abwärtskompatibilität beibehalten, sollte jedoch vermieden werden.
8. Anhang A: Veraltete Medienfunktionen
Zur Abfrage für die Größe des Bildfensters (oder der Seiten - Box auf Seite Medien), die width
, height
und aspect-ratio
Media - Funktionen verwendet werden sollen, statt device-width
, device-height
und device-aspect-ratio
, die auf die physikalische Größe der das Gerät beziehen , unabhängig davon , wie viel Platz zur Verfügung steht für das Dokument wird ausgelegt. Die device-*
Medienfunktionen werden manchmal auch als Proxy zum Erkennen mobiler Geräte verwendet. Stattdessen sollten Autoren Medienfunktionen verwenden, die den Aspekt des Geräts, gegen den sie zu stylen versuchen, besser darstellen.
Denken Sie als Randnotiz daran, im Abschnitt Ihres Dokuments ein Ansichtsfenster-Meta-Tag anzugeben <head>
:
<meta name="viewport" content="width=device-width, initial-scale=1">
Erläuterung
Aufgrund all der unterschiedlichen möglichen Bildschirmauflösungen und Pixeldichten, die ein bestimmtes Gerät haben kann, ist ein Pixel kein Pixel, da verschiedene Dinge zu berücksichtigen sind (Zoom, Pixeldichte, Bildschirmauflösung und -größe, Geräteorientierung, Seitenverhältnis usw.) ..). In diesem Fall wird ein Pixel tatsächlich als "optische Referenzeinheit" und nicht als physikalisches Hardwarepixel bezeichnet.
Glücklicherweise können Sie im Abschnitt Ihres Dokuments ein Ansichtsfenster-Meta-Tag angeben <head>
, um die Breite und Skalierung des Ansichtsfensters des Browsers zu steuern. Wenn dieses Tag den content
Wert "hat" width=device-width
, stimmt die Bildschirmbreite mit den geräteunabhängigen Pixeln überein und stellt sicher, dass alle verschiedenen Geräte skaliert werden und sich konsistent verhalten.
<meta name="viewport" content="width=device-width, initial-scale=1">
In Bezug auf Medienabfragen möchten Sie wahrscheinlich max-width
eher als verwenden max-device-width
, da dies max-width
auf das Ansichtsfenster (aktuelles Browserfenster) abzielt, während max-device-width
es auf die tatsächliche Vollbildgröße / Auflösung des Geräts abzielt.
Mit anderen Worten, wenn Sie verwenden max-device-width
, werden beim Ändern der max-width
Größe Ihres Desktop-Browsers keine unterschiedlichen Medienabfragen angewendet, da im Gegensatz dazu nur die tatsächliche Vollbildgröße des Geräts berücksichtigt wird. nicht die aktuelle Größe des Browserfensters.
Dies macht einen großen Unterschied, wenn Sie versuchen, ein adaptives Layout zu erstellen, da die Site beim Ändern der Größe des Browsers nicht reagiert. Wenn Sie max-device-width
die Medienabfragen verwenden, die Sie für Geräte mit kleineren Bildschirmen verwenden, gelten diese auch dann nicht für Desktops, wenn Sie die Größe des Browserfensters auf die kleinere Bildschirmgröße verkleinern.
Ab 2018 hat der neueste Entwurf der device-width
Medienabfragespezifikation die Medienfunktion tatsächlich veraltet , daher sollte sie vermieden werden.
Darüber hinaus wird in diesem Artikel über Google-Entwickler dringend davon abgeraten, Folgendes zu verwenden max-device-width
:
Google Developers - Web Fundamentals - Responsive CSS-Medienabfragen
Es ist auch möglich, Abfragen basierend auf zu erstellen *-device-width
. von dieser Praxis wird jedoch dringend abgeraten .
Der Unterschied ist subtil, aber sehr wichtig: Er min-width
basiert auf der Größe des Browserfensters, während er min-device-width
auf der Größe des Bildschirms basiert. Leider melden einige Browser, einschließlich des älteren Android-Browsers, die Gerätebreite möglicherweise nicht richtig und stattdessen die Bildschirmgröße in Gerätepixeln anstelle der erwarteten Breite des Ansichtsfensters.
Darüber hinaus kann durch die Verwendung *-device-width
verhindert werden, dass sich Inhalte auf Desktops oder anderen Geräten anpassen, deren Fenstergröße geändert werden kann, da die Abfrage auf der tatsächlichen Gerätegröße und nicht auf der Größe des Browserfensters basiert.
Weiterführende Literatur: