首页 > webfront > SGML > html5 > > 正文

iphone x全屏导航自适配页面,css兼容iphone x

发布人:zhoulujun    点击:

iphonex在webview全屏的时候,导航栏会被 iphone的toolbar 遮住,ios11已经提供原生支持,部分人居然用js处理,无语了

iphonex在webview全屏的时候,导航栏会被 iphone的toolbar 遮住,网上的 兼容方案很多,一般会用 css constant()函数——在iOS 11中的WebKit包含了一个新的CSS函数constant()

    padding-top: constant(safe-area-inset-top);
    padding-top: env(safe-area-inset-top);

注:constant函数预定义的常量:safe-area-inset-left, safe-area-inset-right, safe-area-inset-top和 safe-area-inset-bottom,当合并一起使用时,允许样式引用每个方面的安全区域的大小。

但是,需要说明的是,当viewport-fit:contain(默认值)时,constant函数比起作用;

constant无论设置safe-area-inset-left, safe-area-inset-right, safe-area-inset-top还是 safe-area-inset-bottom等均无效。

所以需要在html head标签增加一行

<meta name="viewport" content="initial-scale=1,maximum-scale=1,user-scalable=no,width=device-width,height=device-height, viewport-fit=cover">

Add viewport-fit=cover to index.html:



次点,用媒体查询也行

@media only screen

and (device-width : 375px)

and (device-height : 812px)

and (-webkit-device-pixel-ratio : 3) {

  //适配iphone x 的代码。

}


2.jpg

时至今日 IOS又用env()替代constant(),设置还是如同constant。

现在,人家比我总结的更加详细,推荐文章:

关于H5页面在iPhoneX适配

iPhone X的缺口和CSS