Estoy construyendo un portal web que tiene que ser funcional y bonito en múltiples plataformas. Una de las plataformas es IOS Safari, y esto es donde encontré un problema. En mi código, alineo dos botones flotantes en la parte inferior de un div con un ancho y una altura del 100%. Todo esto funciona bien y mis botones se muestran exactamente como se supone que deben estar en la parte inferior de la página. Sin embargo, cuando hago clic en los botones, la vista compacta del safari móvil cambia a vista completa y mis botones están ocultos detrás de la barra de navegación inferior.
¿Es normal que Safari Mobile muestre el menú expandido cuando el usuario toca el 10% inferior de la pantalla? ¿Cómo puedo evitar esto?
En este gif, puede ver el problema en el simulador IOS:
como puede ver, el problema solo ocurre cuando un botón está en el 10% inferior de la vista. Este es solo un botón normal, mi código fue verificado tres veces por varios desarrolladores y no tiene errores.
fuente
Respuestas:
Este es un comportamiento normal en Mobile Safari, al tocar en la parte inferior se mostrarán las diferentes opciones del navegador y se desplazará la página web en consecuencia. Sin embargo, la funcionalidad de la página web permanece igual, por lo que el usuario aún puede tocar el botón después de desplazarse para acceder a cualquier funcionalidad que tenga.
fuente
Creo que pude haber encontrado una respuesta. Configurar su contenido para que tenga los siguientes estilos:
height: 100%
(permite que el contenido llene la ventana gráfica y vaya más allá de la parte inferior)overflow-y: scroll
(le permite desplazarse debajo de la ventana gráfica; el valor predeterminado esvisible
)-webkit-overflow-scrolling: touch
(para suavizar cualquier comportamiento de desplazamiento)parece forzar el menú de iOS en Safari para que siempre aparezca. De esa manera, los clics en los botones funcionarán en lugar de abrir el menú Safari. ¡Espero que esto ayude!
fuente
overflow-y: scroll
en su área de contenido principal. Este truco tiene efectos secundarios que afectarán a todos sus elementos secundarios. Para decirlo más correctamente, estas propiedades css afectan directamente a todos los elementos secundarios y obligar al menú de safari a mostrar es en realidad el efecto secundario.height: 100%
. Para una empresa que gana mucho dinero con dispositivos móviles, su experiencia web móvil es horrible.