Je construis un portail Web qui doit être fonctionnel et joli sur plusieurs plates-formes. Une des plateformes est IOS Safari, et c’est là que j’ai rencontré un problème. Dans mon code, j'aligne deux boutons flottants au bas d'une div avec une largeur et une hauteur de 100%. Tout cela fonctionne bien et mes boutons s'affichent exactement comme ils sont supposés l'être en bas de la page. Cependant, lorsque je clique sur les boutons, la vue compacte de Safari mobile passe en mode plein écran et mes boutons sont cachés derrière la barre de navigation inférieure!
Est-il normal que Safari Mobile affiche le menu développé lorsque l'utilisateur appuie sur les 10% inférieurs de l'écran? Comment puis-je éviter ça?
Dans ce gif, vous pouvez voir le problème sur le simulateur IOS:
Comme vous pouvez le constater, le problème ne se produit que lorsqu'un bouton se trouve dans les 10% inférieurs de la vue. Ceci est juste un bouton normal, Mon code a été vérifié trois fois par plusieurs développeurs et il ne contient aucune erreur.
la source
Réponses:
Ce comportement est normal dans Mobile Safari. Si vous appuyez en bas, les différentes options du navigateur s'affichent et vous permettent de faire défiler la page Web en conséquence. La fonctionnalité de la page Web reste la même, de sorte que l'utilisateur peut toujours appuyer sur le bouton après l'avoir fait défiler pour accéder à la fonctionnalité dont il dispose.
la source
Je pense avoir trouvé une réponse. Définissez votre contenu pour avoir les styles suivants:
height: 100%
(permet au contenu de remplir la fenêtre d'affichage et d'aller au-delà du bas)overflow-y: scroll
(vous permet de faire défiler sous la fenêtre d'affichage; la valeur par défaut estvisible
)-webkit-overflow-scrolling: touch
(pour lisser tout comportement de défilement)semble forcer le menu iOS dans Safari à toujours apparaître. De cette façon, les clics sur les boutons fonctionneront plutôt que d'ouvrir le menu Safari. J'espère que cela t'aides!
la source
overflow-y: scroll
leur zone de contenu principale. Ce hack a des effets secondaires qui affecteront tous ses éléments enfants. Pour le dire plus correctement, ces propriétés css affectent directement tous les éléments enfants et forcer l'affichage du menu safari est en réalité l'effet secondaire.