H5|小程序|RN页面适配iphoneX【异形屏幕|底部安全区域】
需求场景: H5页面有一个吸底的按钮,但是异形屏幕【iPhonex等】,按钮一大半会被系统的小黑条挡住。需要适配在异形屏幕下,完整展示按钮,不被遮挡。
查了一些资料,发现为了应对刘海屏幕,苹果也给出了响应的策略
一个meta头
<meta name="viewport" content="viewport-fit=cover">
meta 有三个属性
- contain 可视化窗口完全包含网页内容
- cover 网页内容完全覆盖 (小程序默认)
- auto 默认值和 contain 一样(h5网页默认contain )
两个CSS函数
- env() 兼容 版本>ios11.2
- constant() 兼容 版本<ios11.2
四个预定义变量
safe-area-inset-left:安全区域距离左边边界的距离
safe-area-inset-right:安全区域距离右边边界的距离
safe-area-inset-top:安全区域距离顶部边界的距离
safe-area-inset-bottom :安全距离底部边界的距离
看完上面,应该就知道怎么进行适配了。
- 设置meta头部,content=“viewport-fit=cover”
- 在吸底的元素上设置
margin-bottom: env(safe-area-inset-bottom);margin-bottom: constant(safe-area-inset-bottom);
上效果图
这样就完美避免了被小黑条遮挡的问题。但是看起来按钮是不是悬浮在中间。有点奇怪
优化一下, margin改为padding
3.
padding-bottom: env(safe-area-inset-bottom);padding-bottom: constant(safe-area-inset-bottom)
RN: safeAreaView组件
ReactNative从0.50.1版本开始,加入了safeAreaView组件来适配iphoneX 异型屏幕
safeAreaView的使用方式也非常简单,只要使用safeAreaView标签来包裹住原来的根标签,并且可以设置样式,flex:1等;也可以设置背景颜色backgroundColor,这样底部安全区留白的颜色自定义可以通过backgroundColor来实现
<SafeAreaView style={{flex: 1, backgroundColor: '#fff'}}><View style={{flex: 1}}>。。。 </View>
</SafeAreaView>
拓展:小程序自定义头部的适配问题
小程序获取安全区域,可以通过wx.getSystemInfoAsync()来获取safeArea对象。通常适配的时候会要用到安全距离。同事用safeArea的top来设置自定义头部的top。但我在实测中遇到了一个真机的bug。
红米k20的手机 safeAea对象的top返回的是0 ,导致自定义头部很状态栏重叠。
console对象
这时候才发现,应该用statusBarHeight 状态栏这个字段才是最正确的。
改完发现ok了。
H5|小程序|RN页面适配iphoneX【异形屏幕|底部安全区域】相关推荐
- 微信小程序将页面按钮悬浮固定在底部
效果图如下所示: ps: 悬浮固定在页面的底部,并且背景有白色层将页面底部文字的显示遮罩,一面影响显示观感.且不受页面下拉上提的影响. wxml代码如下: <!--底部按钮的背景层-->& ...
- 【天天外链】支持H5链接跳转到企业小程序任意页面!
除了传统的固定外链模式,天天外链现在支持H5/链接跳转到企业小程序任意页面. 提前准备 在天天外链官网小程序/后台注册[天天外链],使用密钥版添加您的小程序(输入配置参数即可) 创建一条推广链接(简单 ...
- 小程序中页面兼容h5标签的解析
有时候当小程序向后台拿数据是一篇html标签的文章时,把它放进小程序会发现很多标签就不兼容,如果要一个个改又很麻烦,有没有方法可以很快地兼容html标签呢? 有个工具可以做到:wxParse 下载 ...
- 1分钟解决 微信小程序 iPhone 11、iPhoneX 底部安全区域(底部小黑条)适配
[最新:目前微信官方已适配iPhone11手机型号,分别为:iPhone 11,iPhone 11 Pro Max] iPhone X 对于微信小程序的tabbar来说,会被底部小黑条覆盖,需要处 ...
- 微信小程序 全面屏适配
最近在做小程序,说实话小程序的坑我才刚踩.今天做了一个关于小程序自定义navigator的功能,不废话,先上图 通过配置app.json的window属性的navigationStyle(导航栏样式, ...
- h5自定义相机界面_有没有什么比较好用的H5小程序?
22款H5小程序让你可以更轻松胜任新媒体运营工作 人人秀 3分钟制作H5界面.H5游戏.H5活动.涨粉活动的利器. 24好玩 小白3分钟创建刷屏级H5,支持嵌入小程序运营,快速实现增粉.留存. 易企秀 ...
- 7.微信小程序(布局适配与物理逻辑像素)
微信小程序(布局适配与物理逻辑像素) 前言 移动端开发经常遇到一些概念:物理像素.逻辑像素.像素密度.像素比等,本节来详细介绍下 关键词: 屏幕尺寸.物理像素/屏幕分辨率/物理分辨率.逻辑像素DIP. ...
- win7下搭建小程序服务器,重磅!微信PC端支持小程序直接开启 适配Win7及以上系统...
原标题:重磅!微信PC端支持小程序直接开启 适配Win7及以上系统 腾讯科技讯 8月9日,腾讯科技在"微信开放社区"发现,微信正在测试"PC端支持打开小程序"能 ...
- 基于Uni-APP多端「h5+小程序+App」高仿抖音小视频|直播|聊天实例
uni-ttLive 基于uni-app+uView-ui跨端开发短视频+直播聊天实例. 全新研发的一款多端仿制抖音短视频+直播+聊天项目,基于uniApp+Vue.js+Vuex+Nvue+uVie ...
最新文章
- 区块链如何应用于保险行业
- float排版c语言,如何解决因float带来的排版问题?
- ssrs 基于表达式显示_基于表达式的访问控制
- 黑苹果2k屏_一加手机屏幕新特性:120Hz、2K+ OLED、10bit
- 算法高级(13)-常见负载均衡算法Java代码实现
- python跳过错误_Pandas之read_csv()读取文件跳过报错行的解决
- [导入]完成可脚本调用的视频录制控件
- BZOJ 2878: [Noi2012]迷失游乐园( 树形dp )
- Arts 第九周(5/13 ~ 5/19)
- vivo android 刷机教程,vivo刷机步骤盘点【图文教程】
- Opencv3.4.6+VS2019+win10安装教程
- 【历史上的今天】5 月 25 日:雅虎与 eBay 联盟;第一次国际万维网会议;Google 街景发布
- ‘connector.type‘ expects ‘filesystem‘, but is ‘kafka‘
- java版本电子招标采购系统源码—企业战略布局下的采购
- C++学生类和成绩排序
- html,css和js
- MapReduce学习1:MapReduce基本概念
- Cause: java.sql.SQLException: SQL String cannot be empty 解决方案
- Linux智能家居项目
- [小说]魔王冢(16)寻凶(二)