Je crée une page Web mobile qui est fondamentalement un grand formulaire avec plusieurs entrées de texte.
Cependant (au moins sur mon _ Android téléphone portable), chaque fois que je clique sur une entrée, la page entière est agrandie, ce qui masque le reste de la page. Existe-t-il une commande HTML ou CSS permettant de désactiver ce type de zoom sur les pages Web mobiles?
Cela devrait être tout ce dont vous avez besoin
<meta
name='viewport'
content='width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0'
/>
Pour les retardataires de la soirée, la réponse de kgutteridge ne fonctionne pas pour moi et la réponse de Benny Neugebauer inclut target-densdpi (un fonctionnalité déconseillée ).
Cela fonctionne cependant pour moi:
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
Il y a un certain nombre d'approches ici- et bien que la position soit que typiquement les utilisateurs ne devraient pas être restreints quand il s'agit de zoomer à des fins d'accessibilité, il peut y avoir des cas où cela est requis:
Render la page à la largeur de l'appareil, ne pas mettre à l'échelle:
<meta name="viewport" content="width=device-width, initial-scale=1.0">
Empêche la mise à l'échelle et empêche l'utilisateur de zoomer:
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
Suppression de tout zoom, toute mise à l'échelle
<meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width, height=device-height, target-densitydpi=device-dpi" />
Vous pouvez utiliser:
<head>
<meta name="viewport" content="target-densitydpi=device-dpi, initial-scale=1.0, user-scalable=no" />
...
</head>
Notez cependant qu'avec Android 4.4 , la propriété target-densitdpi n'est plus prise en charge . Donc, pour Android 4.4 et versions ultérieures, nous vous suggérons de vous recommander la meilleure pratique:
<meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no" />
Puisqu'il n'y a toujours pas de solution au problème initial, voici mes deux cents en CSS pur.
Les navigateurs mobiles (la plupart d’entre eux) exigent que la taille de la police dans les entrées soit 16px. Alors
input[type="text"],
input[type="number"],
input[type="email"],
input[type="tel"],
input[type="password"] {
font-size: 16px;
}
résout le problème. Il n'est donc pas nécessaire de désactiver le zoom et de perdre les fonctionnalités d'accessibilité de votre site.
Si la taille de votre police de base n’est pas de 16px ou de 16px sur les mobiles, vous pouvez utiliser des requêtes multimédia.
@media screen and (max-width: 767px) {
input[type="text"],
input[type="number"],
input[type="email"],
input[type="tel"],
input[type="password"] {
font-size: 16px;
}
}
s'il vous plaît essayez d'ajouter cette méta-tag et style
<meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" name="viewport"/>
<style>
body{
touch-action: manipulation;
}
</style>
Solution possible pour les applications Web: Bien que le zoom ne puisse plus être désactivé dans iOS Safari, il sera désactivé lors de l'ouverture du site à partir d'un raccourci de l'écran d'accueil.
Ajoutez ces balises méta pour déclarer votre application comme "compatible Web":
<meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" name="viewport"/>
<meta name='Apple-mobile-web-app-capable' content='yes' />
Toutefois, niquement utilisez cette fonctionnalité si votre application est autonome, comme les boutons Précédent/Suivant et la barre d’URL, ainsi que les options de partage sont désactivées. (Vous pouvez toujours glisser à gauche et à droite si) Cette approche permet cependant tout à fait l'application comme ux. Le navigateur plein écran ne démarre que lorsque le site est chargé à partir de l’écran d’accueil. Je ne l'ai également fait fonctionner qu'après avoir inclus un Apple-touch-icon-180x180.png dans mon dossier racine.
En prime, vous voudrez probablement aussi inclure une variante de ceci:
<meta name='Apple-mobile-web-app-status-bar-style' content='black-translucent'/>
Vous pouvez accomplir cette tâche en ajoutant simplement l'élément 'méta' suivant dans votre 'tête':
<meta name="viewport" content="user-scalable=no">
L'ajout de tous les attributs tels que "largeur", "échelle initiale", "largeur maximale", "échelle maximale" peut ne pas fonctionner. Par conséquent, ajoutez simplement l'élément ci-dessus.