PS:微睁宴弯信开发者悉闷工具iphonex与实际真机测试效果不同,底部并没有底部提升。
app.js调用 wx.getSystemInfo接祥雹口获取页面信息,判断底部提升高度。
官网文档:获取系统信息
如图所示
从苹果手机的iphoneX及以后,手机的屏幕顶部就出现了“齐刘海”和底部小黑横条的样式。不少app直接兼容了里面的webview的样式,屏幕在竖屏下顶部往往是导航栏,不会遮住webview里面的内容,而底部则从app层面设置了底部高度,使webview底部不在黑色横条区域内,这样就不会阻碍展示webview里面的内容。
但是,每个app千差万别,里面的webview也就展现不一,如果没有app底部高度,那么webview里面的底部内容就会被小黑条遮挡。从网页样式兼容性来说,需要兼容iphoneX后特有的“齐刘海”和底部小黑横条样式,又不影响以前机型的样式。
首先了解一下iphoneX的安全区域,下图蓝色部分为安全区域,而两边的margin、顶部齐刘海和底部小黑条区域都属于不安全区域,属于内容有可能会被遮挡的区域,那么我们需要控制我们的内容在安全区域内。
所幸,在iphoneX出来的时候,官方的ios11系统也提供了WebKit Api去兼容这种样式差异。
viewport-fit有auto,contain,罩毁fit三个属性值,默认是auto。
contain: 可视窗口完全包含网页内容, 页面内容显示在safe area内
cover:网页内容完全覆盖可视窗口,页面内容充满屏幕
auto:默认值,跟 contain 表现一致
默认情况下,safari展示的是viewport-fit=contain的情况,如下图,在横屏下,webview里的页面内容在安全区域内,但是从样式上看,这不太美观,并且没有利用好iphoneX赋予的全屏特性。
设置 viewport-fit=cover 后,如下图,内容全屏展示,但是左边的内容被“齐刘海”挡住了。
为了解决这个问题,ios11中的WebKit包括了一个新的CSS函数env(),以及四个预定义的环境变量 safe-area-inset-left 、 safe-area-inset-right 、 safe-area-inset-top 和 safe-area-inset-bottom 。这四个环境变量代表了距离安全区域的距离。
这样,当出现不在安春悉全区域时,env(safe-area-inset-left)不等于0,那么就会导致在padding-left上设置了一个安全距离,从而使内容不被遮挡。
上面是被“齐刘海”挡住的情况,实际比较多的情况用在底部小黑条挡住悬浮bar的情况,加上属性支持判断 @supports ,只有 env(safe-area-inset-bottom) 被浏览器支持的时候才会执行里面的css。
注:微信内的webview是默扒闷乎认viewport-fit=cover的状态的,只需要设置安全距离即可,微信小程序同样适用上述方案。
iphonex以上手机非矩形界面适配前:
适配后,iphonex以上手机非矩形界面自动适配底部高度:
手机在更新换代,随着手机样式发生改变,样式兼容问题也接踵而至,但是问题的制造者往往也是问题的解决者,开发者也不用焦虑找不到解决方案,从而使我们更专注业务逻辑本身。
超广角大师软件。培咐超广角大师是专为手机相散虚机设计的辅助性视野工具app,该软件兼容苹果系统。1、首先打开苹果手机浏览器。
2、其次搜冲中燃索超广角大师。
3、最后点击下载安装即可。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)