首頁 >web前端 >css教學 >為什麼 iPad Safari 橫向模式在 iOS 7 中出現內部高度/外部高度差異?

為什麼 iPad Safari 橫向模式在 iOS 7 中出現內部高度/外部高度差異?

DDD
DDD原創
2024-10-26 20:26:30770瀏覽

Why Does iPad Safari Landscape Mode Exhibit an innerHeight/outerHeight Discrepancy in iOS 7?

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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn