目前,許多APP設計師小夥伴已經開始轉向H5前端開發啦,但解決所有iPhone和安卓機型的適配問題是我們的重中之重。無論是設計APP還是寫前端H5.都是要考慮行動端的相容性。
由於iphoneX做了全面螢幕並且還保留一塊小瀏海,因此許多以前的行動端H5頁面需要結合App客戶端做出對應的適配,具體如下:
1、頂部通欄
之前的客戶端一直採用狀態列20pt+導覽列44pt的做法。由於iphoneX多了一塊小瀏海,因此iphoneX單獨採用狀態列44pt+導覽列44pt,意味著內嵌的H5頁面整體下移24pt。
2、底部操作欄
由於iphoneX是全面屏,頁面最底部會被彎曲的角落截掉一部分,特別是有底部固定懸浮的tab條會嚴重受到影響。這時候需要底部留出一塊空白安全區域,頁面內容最終的底線應在手機轉角處。此安全區域的高度為34pt。
3、適配方法
終上所述,結合iphoneX目前特有的手機參數我們可以採用的適配方法為:
(1)meta標籤
ios11為了適配iphoneX對現有的viewport meta標籤新增一個特性:viewport-fit,如果客戶端沒有做全螢幕適配,那麼頁面想要全螢幕覆蓋,則可使用該特性:
<meta name=viewport content=width=device-width,viewport-fit=cover>
(2)媒體查詢
1.利用constant函數
只有設定了viewport-fit=cover才能使用constant函數
@supports(bottom:constant(safe-area-inset-bottom)) { selector{ padding-bottom:constant(safe-area-inset-bottom); padding-bottom:calc(30px(假設值) + constant(safe- area-inset-bottom)); //依實際情況選擇適配方法}}
2.利用iphoneX獨特的型號參數
@media only screen and (device-width: 375px) and (device-height:812px) and (-webkit-device-pixel-ratio:3) { #buy { padding-bottom:34px; }}
(3)js判斷(以下採用Jquery)
if($(window).width() === 375 && $(window).height() === 724 && window.devicePixelRatio === 3){ #buy { padding-bottom:34px; }}
(4)客戶端協議
也可以根據客戶端協定請求客戶端查詢是否為iphoneX,以此來保持和客戶端一致。
4.參數解釋
以上程式碼中的參數解釋如下:
以上參數皆以標準的1pt=1px計算,如果H5頁面採用縮放的rem方式,則1pt = 1px * 3(iphoneX解析度)
總結以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或工作有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對VeVb武林網的支持。