我们发现在iOS7的Safari浏览器上,一个高度为100%的网页应用存在问题。看起来窗口的内部高度(window.innerHeight)(672像素)与外部高度(window.outerHeight) (692像素)不匹配,但这种情况仅在横向模式下出现。结果就是,在body高度设为100%的应用中,会多出20像素的空间。这意味着当用户在我们的应用上向上滑动时,导航元素会被浏览器框架覆盖。另外,所有绝对定位在屏幕底部的元素都会偏移20像素。
这个问题也在这个问题中有所提及: IOS 7 - css - html height - 100% = 692px 并且可以在这张模糊的截图中看到:
我们正在尝试绕过这个问题,以便在Apple修复这个错误之前,我们不必担心它。
一种解决方法是只在iOS 7中对body进行绝对定位,但这基本上会将多出的20像素放在页面顶部而不是底部:
这个问题也在这个问题中有所提及: IOS 7 - css - html height - 100% = 692px 并且可以在这张模糊的截图中看到:
![iOS 7 Safari outerHeight issue](https://istack.dev59.com/VPQYy.webp)
一种解决方法是只在iOS 7中对body进行绝对定位,但这基本上会将多出的20像素放在页面顶部而不是底部:
body {
position: absolute;
bottom: 0;
height: 672px !important;
}
任何有助于使outerHeight与innerHeight匹配,或者绕过此问题以使我们的用户看不到此问题的帮助,将不胜感激。