La media
fonction de requête CSS3 a conduit à de nombreuses possibilités intéressantes en termes de développement de sites Web qui s'adaptent à de nombreuses tailles d'écran et appareils différents.
Cependant, dans la pratique, je commence à avoir le sentiment que la media
fonction de requête CSS3 et l'ensemble du mouvement "Responsive Web Design" peuvent ne pas être à la hauteur de sa promesse.
Le problème que je vois, c'est qu'en fin de compte, les développeurs Web se soucient principalement de savoir si leurs utilisateurs consultent le contenu via un ordinateur de bureau, une tablette ou un appareil mobile. Mais CSS3 ne fournit qu'un moyen de détecter la résolution d'écran . En théorie, la détection de la résolution d'écran semble être un excellent moyen de s'adapter à différents appareils. Mais en pratique ...
Supposons que nous ayons une fonction Javascript simple qui ne fasse que sortir la largeur de l'écran:
function foo()
{
alert(screen.width);
}
Sur mon Blackberry Touch, cela produit:
768
Sur mon Samsung Galaxy, cela produit:
800
Donc ... euh, à ce stade, la résolution des téléphones intelligents traditionnels se rapproche assez des résolutions de niveau bureau. La capacité de détecter si un utilisateur consulte votre site Web via un smartphone, une tablette ou un ordinateur de bureau semble être de plus en plus difficile si vous vous contentez de la résolution d'écran.
Cela me fait remettre en question toute la sagesse derrière tout le mouvement CSS3 "Responsive Web Design" basé sur les requêtes des médias. Il semble presque que la media
fonction de requête soit mieux adaptée à l'adaptation à une fenêtre de redimensionnement du navigateur sur un écran de bureau, plutôt qu'à divers appareils mobiles.
Une autre technique possible pour détecter les appareils mobiles ou tablettes consiste à utiliser la détection des fonctionnalités, en vérifiant si l' ontouchstart
événement est pris en charge. Mais même cela devient de moins en moins fiable car de nombreux écrans de bureau commencent à prendre en charge le toucher.
Question: Donc ... en tant que développeur Web, si je ne peux pas compter sur RWD ou la détection de fonctionnalités, le reniflement d'agent utilisateur (aussi notoirement peu fiable que toujours) est-il vraiment la meilleure option pour détecter les appareils mobiles?
device-width
assez mauvais?