Nous rencontrons des problèmes avec une application web dont la hauteur est de 100 % dans Safari sous iOS 7. Il semble que la hauteur de window.innerHeight (672px) ne corresponde pas à celle de window.outerHeight (692px), mais uniquement en mode paysage. Ce qui se passe, c'est que dans une application dont la hauteur du corps est de 100 %, on obtient 20px d'espace supplémentaire. Cela signifie que lorsqu'un utilisateur passe le curseur sur notre application, les éléments de navigation sont tirés derrière le chrome du navigateur. Cela signifie également que tout élément positionné de manière absolue en bas de l'écran se retrouve décalé de 20px.
Ce problème a également été exposé dans cette question ici : IOS 7 - css - html height - 100% = 692px
Et peut être vu dans cette capture d'écran ambiguë :
Ce que nous essayons de faire, c'est de contourner ce problème pour que, jusqu'à ce qu'Apple corrige le bug, nous n'ayons pas à nous en préoccuper.
L'un des moyens d'y parvenir est de positionner le corps de manière absolue, uniquement dans iOS 7, mais cela place les 20px supplémentaires en haut de la page plutôt qu'en bas :
body {
position: absolute;
bottom: 0;
height: 672px !important;
}
Toute aide pour forcer outerHeight à correspondre à innerHeight, ou pour contourner le problème afin que nos utilisateurs ne le voient pas, serait très appréciée.