Die CSS3- media
Abfragefunktion hat zu vielen interessanten Möglichkeiten bei der Entwicklung von Websites geführt, die sich an viele verschiedene Bildschirmgrößen und Geräte anpassen lassen.
In der Praxis bekomme ich jedoch allmählich das Gefühl, dass die CSS3- media
Abfragefunktion und die gesamte "Responsive Web Design" -Bewegung möglicherweise nicht ihren Versprechen entsprechen.
Das Problem ist, dass sich Webentwickler letztendlich hauptsächlich darum kümmern, ob ihre Benutzer Inhalte über einen Desktop, ein Tablet oder ein Mobilgerät anzeigen. CSS3 bietet jedoch nur die Möglichkeit, die Bildschirmauflösung zu erkennen . Theoretisch scheint die Erkennung der Bildschirmauflösung eine großartige Möglichkeit zu sein, die Einstellungen für verschiedene Geräte vorzunehmen. Aber in der Praxis ...
Angenommen, wir haben eine einfache Javascript-Funktion, die nur die Bildschirmbreite ausgibt:
function foo()
{
alert(screen.width);
}
Auf meinem Blackberry Touch wird Folgendes ausgegeben:
768
Auf meinem Samsung Galaxy gibt dies Folgendes aus:
800
An diesem Punkt kommt die Auflösung von Mainstream-Smartphones der Auflösung auf Desktop-Ebene ziemlich nahe. Die Fähigkeit zu erkennen, ob ein Benutzer Ihre Website über ein Smartphone, ein Tablet oder einen Desktop anzeigt, scheint immer schwieriger zu werden, wenn Sie lediglich die Bildschirmauflösung verwenden.
Dies lässt mich die gesamte Weisheit hinter der gesamten CSS3-Bewegung "Responsive Web Design" in Frage stellen, die auf Medienanfragen basiert. Es scheint fast so, als ob die media
Abfragefunktion besser für die Anpassung an ein Browserfenster zur Größenänderung auf einem Desktop-Bildschirm geeignet ist, als für verschiedene mobile Geräte.
Eine andere mögliche Technik zum Erkennen von Mobil- oder Tablet-Geräten ist die Verwendung der Funktionserkennung, indem überprüft wird, ob das ontouchstart
Ereignis unterstützt wird. Aber selbst dies wird immer unzuverlässiger, da viele Desktop-Bildschirme Berührungen unterstützen.
Frage: Wenn ich mich als Webentwickler nicht auf die Erkennung von RWD oder Features verlassen kann, ist User-Agent-Sniffing (so notorisch unzuverlässig wie immer) wirklich die beste Option, um mobile Geräte zu erkennen?
device-width
ziemlich schlecht?