env()和constant(),是IOS11新增特性,用于设定与边界的距离,一共有4个变量:
safe-area-inset-left: 距离左边边界的距离 safe-area-inset-right: 距离右边边界的距离 safe-area-inset-top: 距离顶部边界的距离 safe-area-inset-bottom :底部边界的距离
在 IOS11.2 以前,可以使用constant()函数,在 IOS11.2 以后,它就被废了,可以使用env()替代
例:
padding-bottom: constant(safe-area-inset-bottom); // 兼容 IOS 11.2 以下 padding-bottom: env(safe-area-inset-bottom); // 兼容 IOS 11.2 以上 也可以这样写:可以预设一个高度 padding-bottom: calc(30rpx + constant(safe-area-inset-bottom)); padding-bottom: calc(30rpx + env(safe-area-inset-bottom)); 注意二者的顺序不能发生变化 必须 constant 在前 env 在后 也可以单独写但是单独写的话就没法做到完整的适配了,或者你可以确定用户全都是 IOS 11.2 以下的,或者都是IOS 11.2 以上的
拓展:
1. 本身有padding值,把padding-bottom一起计算进去:
padding-bottom:calc(15rpx + constant(safe-area-inset-bottom)); padding-bottom:calc(15rpx + env(safe-area-inset-bottom))
2.用高度加出来安全区域
height: calc(80rpx + constant(safe-area-inset-bottom)); height: calc(80rpx + env(safe-area-inset-bottom));
注意二者的顺序不能发生变化 必须 constant 在前 env 在后标签:constant,area,safe,ios,bottom,兼容,padding,inset,小黑 From: https://www.cnblogs.com/520BigBear/p/17292487.html
更多参考链接:https://www.jianshu.com/p/6c7308c273b6 https://blog.csdn.net/tengyuxin/article/details/126105067