让前端飞前端开发技巧前端

iphoneX、iphoneXS、iphoneXSMax、iph

2019-03-31  本文已影响0人  一个写前端的姑娘

曾经写了一篇关于iPhoneX适配(h5)的文章,这篇文章主要从css方面介绍了iphoneX的适配,但是前段时间苹果又推出了iphoneXS、iphoneXSMax、iphoneXR这三种机型,依然有齐刘海和底部手势区域的适配,此篇文章将介绍iphoneX 、iphoneXS、iphoneXSMax、iphoneXR这几种机型的适配

基础知识

1. 关于iphoneX 、iphoneXS、iphoneXSMax、iphoneXR机型的大小和像素

机型尺寸
注意:开发人员只需要记住开发尺寸

2. 屏幕组成
齐刘海(44px) + 安全区域 + 手势区域(34px)

屏幕组成
适配方案

1. viewport-fit

<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 */
@media only screen and (device-width: 375px) and (device-height: 812px) and (-webkit-device-pixel-ratio: 3) {
   // iphoneX iphoneXS样式
}
/* xr */
@media only screen and (device-width: 414px) and (device-height: 896px) and (-webkit-device-pixel-ratio: 2) {
    // iphoneXR样式
}
/* xs max */
@media only screen and (device-width: 414px) and (device-height: 896px) and (-webkit-device-pixel-ratio: 3) {
    // iphoneXR样式
}

3. js判断
通过window.navigator.userAgentwindow.devicePixelRatiowindow.screen三个属性来匹配

let isIphoneX = (/iphone/gi.test(window.navigator.userAgent) && window.devicePixelRatio && window.devicePixelRatio === 3 && window.screen.width === 375 && window.screen.height === 812)

let isIphoneXr = (/iphone/gi.test(window.navigator.userAgent) && window.devicePixelRatio && window.devicePixelRatio === 2 && window.screen.width === 414 && window.screen.height === 896)

let isIphoneXsMax = (/iphone/gi.test(window.navigator.userAgent) && window.devicePixelRatio && window.devicePixelRatio === 3 && window.screen.width === 414 && window.screen.height === 896)

上一篇下一篇

猜你喜欢

热点阅读