Todo,un error con iOS5 (Safari), una "posición: div fijo', y las formas de altura
Estoy trabajando en una aplicación web que incluye una muy ' forma vertical'(Por alto, significa que se trata de varios cientos por ciento más alta que la de una típica).
el diseño requiere de un "pie" anclado en el fondo de la pantalla que es siempre visible, independientemente de la posición del usuario en el formulario.
en en otras palabras, el pie de página debe ser visible independientemente de si el usuario está cerca de la parte superior, central o inferior del formulario, y el formulario debe desplazarse "debajo" de él.
Para implementar esto, he creado el pie de página como un div con position:fixed
y bottom:0
.
Esto funciona perfectamente en todos los navegadores que he probado, incluido Safari en iOS5.
excepto que no UNO insecto ...
Si el usuario se encuentra cerca de la parte superior del formulario, y sitúa el foco en uno de los campos de texto - como era de esperar, el IOS muestra el teclado.
Cada vez que el usuario haga clic en Siguiente, iOS "pestañas" al campo siguiente.
A medida que avanza por el formulario haciendo clic repetidamente en Next, iOS "desplaza automáticamente" el formulario, por lo que su posición en el formulario permanece visible.
Sin embargo, iOS no parece actualizar la posición del divisor de pie de página position:fixed
- se desplaza incorrectamente junto con el resto del formulario.
Si el usuario cierra el teclado, el div se restaura en su lugar "correcto", por lo que este no es un error irrecuperable. Pero, el hecho de que el pie de página se mueva es un problema flagrante.
¿Es esto un error o inconveniente con la implementación de iOS de position:fixed
? O, ¿hay algo que estoy haciendo mal?
¡Muchas gracias de antemano!
[ACTUALIZACIÓN]
Remy Sharp (bien llamada) acaba de escribir un excelente y detallado post acerca de una variedad de errores y problemas con position:fixed
en IOS/Safari: http://remysharp.com/2012/05/24/issues-with-position-fixed-scrolling-on-ios/. Es una lectura obligada si está pensando en utilizar position:fixed
en un sitio destinado a usuarios de iOS ...
Yinnette, esa es una gran solución. Sin embargo, el problema con esto (a menos que lo malinterprete) es que requiere que tenga una altura fija para el cuerpo. Esto no es posible en un dispositivo que no sea iOS, donde la ventana puede cambiar de tamaño. (Además, hay rumores de que los iPhones 5 pueden tener una altura de pantalla diferente a los modelos anteriores, lo que también significa que no debería suponer una altura fija para la sección del cuerpo.) Me doy cuenta de que puedo usar JavaScript para ajustar el estilo de altura del cuerpo en una ventana cambiar el tamaño del evento, pero eso se pone bastante janky ... – mattstuehler