需求场景: H5页面有一个吸底的按钮,但是异形屏幕【iPhonex等】,按钮一大半会被系统的小黑条挡住。需要适配在异形屏幕下,完整展示按钮,不被遮挡。

查了一些资料,发现为了应对刘海屏幕,苹果也给出了响应的策略

一个meta头

<meta name="viewport" content="viewport-fit=cover">

meta 有三个属性

  1. contain 可视化窗口完全包含网页内容
  2. cover 网页内容完全覆盖 (小程序默认)
  3. 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 :安全距离底部边界的距离


看完上面,应该就知道怎么进行适配了。

  1. 设置meta头部,content=“viewport-fit=cover”
  2. 在吸底的元素上设置
 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【异形屏幕|底部安全区域】相关推荐

  1. 微信小程序将页面按钮悬浮固定在底部

    效果图如下所示: ps: 悬浮固定在页面的底部,并且背景有白色层将页面底部文字的显示遮罩,一面影响显示观感.且不受页面下拉上提的影响. wxml代码如下: <!--底部按钮的背景层-->& ...

  2. 【天天外链】支持H5链接跳转到企业小程序任意页面!

    除了传统的固定外链模式,天天外链现在支持H5/链接跳转到企业小程序任意页面. 提前准备 在天天外链官网小程序/后台注册[天天外链],使用密钥版添加您的小程序(输入配置参数即可) 创建一条推广链接(简单 ...

  3. 小程序中页面兼容h5标签的解析

    有时候当小程序向后台拿数据是一篇html标签的文章时,把它放进小程序会发现很多标签就不兼容,如果要一个个改又很麻烦,有没有方法可以很快地兼容html标签呢?  有个工具可以做到:wxParse  下载 ...

  4. 1分钟解决 微信小程序 iPhone 11、iPhoneX 底部安全区域(底部小黑条)适配

    [最新:目前微信官方已适配iPhone11手机型号,分别为:iPhone 11,iPhone 11 Pro Max] iPhone X   对于微信小程序的tabbar来说,会被底部小黑条覆盖,需要处 ...

  5. 微信小程序 全面屏适配

    最近在做小程序,说实话小程序的坑我才刚踩.今天做了一个关于小程序自定义navigator的功能,不废话,先上图 通过配置app.json的window属性的navigationStyle(导航栏样式, ...

  6. h5自定义相机界面_有没有什么比较好用的H5小程序?

    22款H5小程序让你可以更轻松胜任新媒体运营工作 人人秀 3分钟制作H5界面.H5游戏.H5活动.涨粉活动的利器. 24好玩 小白3分钟创建刷屏级H5,支持嵌入小程序运营,快速实现增粉.留存. 易企秀 ...

  7. 7.微信小程序(布局适配与物理逻辑像素)

    微信小程序(布局适配与物理逻辑像素) 前言 移动端开发经常遇到一些概念:物理像素.逻辑像素.像素密度.像素比等,本节来详细介绍下 关键词: 屏幕尺寸.物理像素/屏幕分辨率/物理分辨率.逻辑像素DIP. ...

  8. win7下搭建小程序服务器,重磅!微信PC端支持小程序直接开启 适配Win7及以上系统...

    原标题:重磅!微信PC端支持小程序直接开启 适配Win7及以上系统 腾讯科技讯 8月9日,腾讯科技在"微信开放社区"发现,微信正在测试"PC端支持打开小程序"能 ...

  9. 基于Uni-APP多端「h5+小程序+App」高仿抖音小视频|直播|聊天实例

    uni-ttLive 基于uni-app+uView-ui跨端开发短视频+直播聊天实例. 全新研发的一款多端仿制抖音短视频+直播+聊天项目,基于uniApp+Vue.js+Vuex+Nvue+uVie ...

最新文章

  1. endnote咋手动输入文献_EndNote 如何在 Word 中手动输入引文
  2. 本蒟蒻对于二分图一些定理的理解
  3. python 清空list 方法
  4. 0619-dedeCMS的安装、重装、目录说明、基本操作及注意事项
  5. (100)FPGA单沿和双沿采样(下降沿采样)
  6. 【汇编优化】之CPUID获取x86处理器信息
  7. html js关闭浏览器,js关闭页面(兼容浏览器)
  8. H5案例分析和场景应用
  9. 【企业架构】什么是第一?架构还是流程?
  10. 电源反馈电路设计经验(PC817光耦隔离+TL431)
  11. ue4创建c++类编译失败
  12. java实现浏览器下载excel文件
  13. 有关运放自激振荡的帖子(1)
  14. T155235 判断升序排列
  15. 带你一文搞懂VMware Workstation的三种网络模式
  16. python:考试前,练手习题(斐波那契数,字符串排序,九九乘法表,水仙花数,求和...求数字倍数,(保佑不挂科!)
  17. LeetCode-1264. 页面推荐(中等)
  18. 计算机研究生怎么研究黑洞,麻省理工学院研究生的工作使黑洞的事件视野成为可能...
  19. R语言时间序列平稳性几种单位根检验(ADF,KPSS,PP)及比较分析
  20. 用 Python 爬了猫眼3000+《指环王》影评

热门文章

  1. git报错 fatal: unsafe repository
  2. 如何优雅的处理错误逻辑
  3. Vue Avoid using non-primitive value as key, use string/number value instead.
  4. 在人工智能风口下,AI翻译也火了
  5. 飞书开放平台-查询已读消息示例
  6. sshd服务的白名单与黑名单
  7. APP隐私合规问题被工信部通报了怎么办
  8. 李望 原创作品转载请注明出处 《Linux内核分析》MOOC课程http://mooc.study.163.com/course/USTC-10000290
  9. 想拿高薪千万别错过!金三银四求职攻略来啦
  10. STM32F0 Error: Flash Download failed - Cortex-M0解决