[轉] iphoneX、iphoneXS、iphoneXSMax、iphoneXR適配


基礎知識

1. 關於iphoneX 、iphoneXS、iphoneXSMax、iphoneXR機型的大小和像素

 
機型尺寸

注意:開發人員只需要記住開發尺寸

 

2. 屏幕組成
齊劉海(44px) + 安全區域 + 手勢區域(34px)

 
屏幕組成

 

適配方案
1. viewport-fit

viewport-fit="contain"展示區域在安全區中,不包括齊劉海和底部手勢區域
viewport-fit="cover"展示區域整個屏幕中,包括齊劉海和底部手勢區域
所以使用viewport-fit="contain"就可以解決適配問題,將下面的代碼放在<head>標簽中。
<meta name="viewport" content="width=device-width,initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no, viewport-fit=contain">

2. css媒體查詢

X、XS機型的媒體查詢
/* x xs */
@media only screen and (device-width: 375px) and (device-height: 812px) and (-webkit-device-pixel-ratio: 3) {
   // iphoneX iphoneXS樣式
}
XR機型媒體查詢
/* xr */
@media only screen and (device-width: 414px) and (device-height: 896px) and (-webkit-device-pixel-ratio: 2) {
    // iphoneXR樣式
}
XS MAX機型媒體查詢
/* xs max */
@media only screen and (device-width: 414px) and (device-height: 896px) and (-webkit-device-pixel-ratio: 3) {
    // iphoneXR樣式
}
3. js判斷
通過window.navigator.userAgent、window.devicePixelRatio、window.screen三個屬性來匹配

X、XS機型js檢查
let isIphoneX = (/iphone/gi.test(window.navigator.userAgent) && window.devicePixelRatio && window.devicePixelRatio === 3 && window.screen.width === 375 && window.screen.height === 812)

XR機型js檢查
let isIphoneXr = (/iphone/gi.test(window.navigator.userAgent) && window.devicePixelRatio && window.devicePixelRatio === 2 && window.screen.width === 414 && window.screen.height === 896)

XS MAX機型js檢查
let isIphoneXsMax = (/iphone/gi.test(window.navigator.userAgent) && window.devicePixelRatio && window.devicePixelRatio === 3 && window.screen.width === 414 && window.screen.height === 896)

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM