小程序兼容ios底部小黑条

发布时间 2023-04-06 13:27:23作者: 大熊丨rapper

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 在后 


更多参考链接:https://www.jianshu.com/p/6c7308c273b6 https://blog.csdn.net/tengyuxin/article/details/126105067