小程序进阶-env(safe-area-inset-bottom)的使用

一、简介

env(safe-area-inset-bottom)和env(safe-area-inset-top)是CSS中的变量,用于获取设备底部和顶部安全区域的大小。

所谓的安全区域就是指在iPhone X及以上的设备中,为避免被屏幕的"刘海"和"Home Indicator"所遮挡或者覆盖的有效区域区域,以确保内容在安全区域内显示。

bash 复制代码
这个变量最好和padding或者height(可结合calc一起)结合使用,会达到最好的效果。

二、应用

  1. 和padding的结合
css 复制代码
padding-bottom: env(safe-area-inset-bottom);

如果想让安全区域再靠上20px,则结合calc使用如下:

css 复制代码
padding-bottom: calc(20px + env(safe-area-inset-bottom)); 
  1. 和height的结合
css 复制代码
height: calc(100vh - 144px - env(safe-area-inset-top) - env(safe-area-inset-bottom)) ;
  1. 机型兼容
    在某些机型上识别不出env(safe-area-inset-bottom)和env(safe-area-inset-top),会导致高度等失效。可做如下兼容:
css 复制代码
//兼容普通机型,不识别变量的机型:
height: calc(100vh - 144px);
//兼容苹果手机
height: calc(100vh - 144px - env(safe-area-inset-top) - env(safe-area-inset-bottom));

如果识别这两个变量,则执行第二句,覆盖第一句;如果不识别这两个变量呢,则不识别第二句,执行第一句。这就是一个完美的兼容写法!

相关推荐
我很苦涩的2 小时前
使用微信小程序实现多格验证码效果
微信小程序·小程序
阿里花盘2 小时前
花店微信小程序怎么做,创建一个小程序需要多少钱
微信小程序·小程序
2501_916008892 小时前
没有源码如何加密 IPA 实战流程与多工具组合落地指南
android·ios·小程序·https·uni-app·iphone·webview
LXA08094 小时前
UniApp 小程序中使用地图组件
小程序·uni-app·notepad++
bug总结5 小时前
更新原生小程序封装(新增缓存订阅)完美解决
前端·缓存·小程序
2501_9159090610 小时前
Flutter 应用怎么加固,多工具组合的工程化实战(Flutter 加固/Dart 混淆/IPA 成品加固/Ipa Guard + CI)
android·flutter·ios·ci/cd·小程序·uni-app·iphone
2501_9159090614 小时前
深入理解HTTPS和HTTP的区别、工作原理及安全重要性
安全·http·ios·小程序·https·uni-app·iphone
汤姆yu14 小时前
基于微信小程序的民宿预定系统
微信小程序·小程序·民宿预定
小小王app小程序开发16 小时前
淘宝扭蛋机小程序:电商娱乐化赛道的机遇挖掘与风险防控
小程序·娱乐
说私域16 小时前
基于开源AI智能名片链动2+1模式与S2B2C商城小程序的商家活动策略研究
人工智能·小程序