我是靠谱客的博主 个性小土豆,最近开发中收集的这篇文章主要介绍env()和constant()设置安全区域,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

css属性——env()和constant()设置安全区域 - 青云码上 - 博客园

env()和constant(),是IOS11新增特性,Webkit的css函数,用于设定安全区域与边界的距离,有4个预定义变量:
safe-area-inset-left:安全区域距离左边边界的距离
safe-area-inset-right:安全区域距离右边边界的距离
safe-area-inset-top:安全区域距离顶部边界的距离
safe-area-inset-bottom :安全距离底部边界的距离
而env()和constant()函数有个必要的使用前提,H5网页设置viewport-fit=cover的时候才生效,小程序里的viewport-fit默认是cover。

<meta name="viewport" content="width=device-width, initial-scale=1.0, viewport-fit=cover">

height: calc(96rpx+ constant(safe-area-inset-bottom));//兼容 IOS<11.2

height: calc(96rpx + env(safe-area-inset-bottom));//兼容 IOS>11.2

padding-bottom: constant(safe-area-inset-bottom);//兼容 IOS<11.2

padding-bottom: env(safe-area-inset-bottom);//兼容 IOS>11.2

// 先constant再env

使用@supports完美兼容CSS属性 - 青云码上 - 博客园
今天写微信小程序遇到一个问题:给page加 150rpx 的 padding-bottom 值,我考虑到 iphone X 系列的底部黑线,参考我之前写的css属性——env()和constant()设置安全区域;所以我这样写:

page{
  padding-bottom: calc( constant(safe-area-inset-bottom) + 150rpx);
  padding-bottom: calc( env(safe-area-inset-bottom) + 150rpx);
}

这样写,在开发者工具、安卓手机、iphoneX系列手机都没问题,都能识别到,然后我用我的古董机(iphone SE 1代,IOS 10.3系统),发现 padding-bottom 无效,尝试了多次,最后发现可以使用 css 的 @supports,使用方法和 @media 差不多:

page{
padding-bottom: calc( constant(safe-area-inset-bottom) + 150rpx);
padding-bottom: calc( env(safe-area-inset-bottom) + 150rpx);
}
/* not 表示不支持括号内的属性 */
@supports not(constant(safe-area-inset-bottom)){
page{
padding-bottom: 150rpx;
}
}

@supports - CSS(层叠样式表) | MDN

最后

以上就是个性小土豆为你收集整理的env()和constant()设置安全区域的全部内容,希望文章能够帮你解决env()和constant()设置安全区域所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(33)

评论列表共有 0 条评论

立即
投稿
返回
顶部