Sur une touche de l'appareil comme iPhone/iPad/Android, il peut être difficile de frapper un petit bouton avec votre doigt. Il n'y a pas de croix-navigateur de façon à détecter les périphériques tactiles avec les CSS media queries, que je sache. J'ai donc vérifier si le navigateur supporte javascript événements tactiles. Jusqu'à maintenant, les autres navigateurs n'ont pas pris en charge, mais les dernières versions de Google Chrome dev canal activé les événements tactiles (même pour les non touch). Et je soupçonne que d'autres éditeurs de navigateurs qui va suivre, depuis les ordinateurs portables avec des écrans tactiles sont à venir. Mise à jour: C'était un bug dans Chrome, donc maintenant le JavaScript de détection fonctionne à nouveau.
C'est le test que j'ai utiliser:
function isTouchDevice() {
return "ontouchstart" in window;
}
Le problème, c'est que ce ne teste que si le navigateur prend en charge les événements tactiles, pas de l'appareil.
Personne ne sait de Les Corriger[tm] façon de donner touch meilleure expérience utilisateur? Autres que le sniffing de l'agent utilisateur.
Mozilla a une requête de support pour les périphériques tactiles. Mais je n'ai pas vu quelque chose comme ça dans n'importe quel autre navigateur: https://developer.mozilla.org/En/CSS/Media_queries#-moz-touch-enabled
Mise à jour: je veux éviter d'utiliser une page séparée/site mobile/les appareils tactiles. La solution est d'en détecter les périphériques tactiles avec la détection d'objets ou similaire à partir de JavaScript, ou inclure une touche personnalisée-CSS sans user agent sniffing! La principale raison que j'ai demandé, est de faire en sorte qu'il n'est pas possible aujourd'hui, avant que je contact le css3 groupe de travail. Donc merci de ne pas répondre si vous ne pouvez pas suivre les exigences de la question ;)