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?
la source
device-width
assez mauvais?Réponses:
Arrêtez de vous inquiéter autant sur des appareils spécifiques.
Il est plus en plus difficile à détecter par la résolution de l' écran, et il sera que plus dure que plus d' appareils entrent sur le marché, mais le but de requêtes des médias est de ne pas détecter dispositif types.What requêtes des médias sont bonnes à se faire quelques réglages à votre conception lorsque il n'est plus agréable à utiliser aux dimensions actuelles. Si le site commence à se désagréger à 550 pixels de large, alors peu importe s'il y a un appareil avec ces dimensions ou non: vous définissez le point d'arrêt là-bas.
C'est la même chose avec la détection des fonctionnalités. Si l'appareil prend en charge le toucher, qu'importe si c'est un appareil mobile ou un futur moniteur mural? Dans tous les cas, les améliorations tactiles seront probablement utiles.
Le reniflement des agents utilisateurs - comme vous l'avez dit - n'est absolument pas fiable. Je pourrais changer ma chaîne User-agent en guillemets Shakespeare si je le voulais vraiment aussi. Que déciderait alors votre site de mon navigateur?
Les agents utilisateurs nécessitent également beaucoup de travail pour gérer toutes les possibilités. En avez-vous un pour Firefox sur Android? Chrome sur IOS? Dauphin sur Froyo? Le navigateur WiiU? Le navigateur extrêmement limité de mon ancien téléphone LG? Lynx? IE 13? Liens? IceWeasel? Le navigateur du Blackberry Playbook? Comment voyez-vous la différence entre Opera fonctionnant sur une tablette et l'opéra fonctionnant sur un téléphone?
Cette liste ne peut que s'allonger avec le temps.
la source
Les agents utilisateurs mentent aussi. Si vous parcourez Google, vous trouverez des listes d'agents utilisateurs par rapport à la réalité. C'est donc un problème. Certains ont recours au paramètre dpi pour déterminer de quel type d'appareil il s'agit.
la source