适配 IOS 安全区域

安全区域指的是一个可视窗口范围,处于安全区域的内容不受圆角(corners)、齐刘海(sensor housing)、小黑条(Home Indicator)影响。

造成这个问题的主要原因就是 iphoneX 之后在屏幕上出现了所谓的刘海屏,而且在屏幕下方加了一条小黑条。

在开发时,需要对顶部和底部预留一点空间,防止页面的内容被这些元素遮挡。在 iOS11 新增的特性中,Webkit 包含了两个新的函数和四个预定义的常量用来适配 IOS 的安全区域。

  1. constant():在 IOS11.2 系统之前使用。 constant()IOS11.2 系统之后被废弃了。

  2. env() :在 IOS11.2 系统之后使用。

  3. safe-area-inset-top:安全区域距离顶部边界距离,状态栏+导航栏大约为88px。

  4. safe-area-inset-left:安全区域距离左边边界距离,竖屏时为0。

  5. safe-area-inset-right:安全区域距离右边边界距离,竖屏时为0。

  6. safe-area-inset-bottom:安全区域距离底部边界距离,大约高度为34px。

    body{
    /* 兼容 iOS < 11.2 /
    padding-top: constant(safe-area-inset-top);
    padding-left: constant(safe-area-inset-left);
    padding-right: constant(safe-area-inset-right);
    padding-bottom: constant(safe-area-inset-bottom);
    /
    兼容 iOS >= 11.2 */
    padding-top: env(safe-area-inset-top);
    padding-left: env(safe-area-inset-left);
    padding-right: env(safe-area-inset-right);
    padding-bottom: env(safe-area-inset-bottom);
    }

相关推荐
iofomo4 天前
【CoCollider】让系统和应用适配如此简单
开发工具·移动端
Amarantine、沐风倩✨21 天前
实现uniapp天地图边界范围覆盖
前端·uni-app·移动端·天地图·全端
Forbesdytto1 个月前
kotlin中的对象表达式与java中的匿名内部类
java·kotlin·移动端
iofomo2 个月前
【Abyss】Android 平台应用级系统调用拦截框架
android·开发工具·移动端
程序者王大川2 个月前
【移动端】Flutter与uni-app:全方位对比分析
flutter·uni-app·app·nodejs·全栈·dart·移动端
莱布尼茨2 个月前
微信小程序 BLE 基础业务接口封装
前端·移动端
莱布尼茨3 个月前
Android 存储概览
移动端
wocwin3 个月前
解决Vue2移动端(H5)项目,手机打开项目侧滑或者按物理返回键,始终是走this.$router.go(-1)
vue.js·h5·history·移动端·popstate
wocwin3 个月前
Vue2移动端(H5项目)项目基于vant实现select单选(支持搜索、回显、自定义下拉label展示功能)
vue.js·vant·移动端·下拉选择·vant-ui·组件封装·select单选
盛夏绽放3 个月前
移动端的知识 以及 排静态网页的步骤
前端·html·移动端