首页  >  文章  >  web前端  >  为什么 iOS 7 Safari for iPad 的横向模式存在 20px 高度差异?

为什么 iOS 7 Safari for iPad 的横向模式存在 20px 高度差异?

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-10-29 06:40:31280浏览

Why is There a 20px Height Discrepancy in iOS 7 Safari for iPad's Landscape Mode?

iOS 7 Safari 横向布局差异:innerHeight 与outerHeight

在 iPad 版 iOS 7 Safari 中,Web 应用程序会出现一个特殊问题:利用 100% 高度。 window.innerHeight (672px) 和 window.outerHeight (692px) 值仅在横向模式下有所不同。这种差异会导致额外 20 像素的未使用空间,从而影响屏幕底部导航元素和绝对定位元素的布局。

为了缓解此问题,直到 Apple 解决该问题,开发人员已采取变通办法。一种方法涉及在 iOS 7 中绝对定位主体,有效地将 20 像素间隙转移到页面顶部而不是底部。不过,更有效的解决方案已经出现。

通过将主体位置设置为固定,可以规避该问题:

<code class="css">@media (orientation:landscape) {
    html.ipad.ios7 > body {
        position: fixed;
        bottom: 0;
        width:100%;
        height: 672px !important;
    }
}</code>

要识别运行 iOS 7 的 iPad 设备,可以使用以下脚本使用:

<code class="javascript">if (navigator.userAgent.match(/iPad;.*CPU.*OS 7_\d/i)) {
    $('html').addClass('ipad ios7');
}</code>

通过实施此解决方法,开发人员可以确保 iPad 版 iOS 7 Safari 中的正确布局行为,消除麻烦的高度差异及其对导航和定位的影响。

以上是为什么 iOS 7 Safari for iPad 的横向模式存在 20px 高度差异?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn