iOS 7 iPad Safari 横向布局难题:克服innerHeight/outerHeight 异常
iOS 7 用户在使用 Web 应用程序时遇到了一个不寻常的难题iPad 处于 Safari 的横向模式。 window.innerHeight (672px) 与 window.outerHeight (692px) 不同,导致意外的布局问题,例如底部有 20px 的额外空间。此问题对使用 100% 网页内容高度的应用程序提出了挑战。
导航布局迷宫
为了解决此问题,出现了各种解决方案。一种方法仅在 iOS 7 中绝对定位 body 元素:
<code class="css">body { position: absolute; bottom: 0; height: 672px !important; }</code>
但是,这种方法只是将多余的空间转移到页面顶部,而不是消除它。
找到稳固的立足点:固定定位和用户代理检测
更强大的解决方案在于利用媒体查询仅在 iPad iOS 7 会话期间将固定定位应用于 body 元素,并确保 100%可靠布局的宽度:
<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>
通过采用这些技术,网络应用程序可以有效地消除 iOS 7 iPad Safari 中的内部高度/外部高度差异,并在纵向和横向方向上提供一致且精美的浏览体验。
以上是为什么 iPad Safari 横向模式在 iOS 7 中出现内部高度/外部高度差异?的详细内容。更多信息请关注PHP中文网其他相关文章!