H5页面在iphone上的适配

本文探讨了H5页面在iPhone上遇到的适配问题,特别是导航栏遮挡电量状态栏的情况。区分了使用原生导航栏和全屏页面两种情况,并介绍了如何利用`safe-area`概念和`viewport-fit: cover`、`env()`函数进行适配,确保内容不会被状态栏和底部小黑条遮挡。

最近在做app中的h5页面遇到了在iphone上导航栏遮住了顶部的电量状态栏,实际上是h5页面占满了手机的整个屏幕,但在安卓上显示正常。

先看app上的H5页面一般有两种分类:

  • H5 页面使用原生 App 的 Navigation Bar 导航栏,此时,status bar 状态栏和导航栏都是原生控件,我们只需要专注的适配底部小黑条处的高度差异即可。
  • H5 页面在 iOS 中占据全屏页面,在这种情况下,除了要兼顾底部小黑条,我们还要处理页面上部跟 状态栏接触的部分,避免内容出现在状态栏上。
safe-area

safe-area是苹果提出的,指的是一个可视窗口范围,处于安全区域的内容不受圆角、齐刘海、小黑条的影响

在这里插入图片描述

解决方法
  • 在页面的meta中加上:viewport-fit: cover,将页面扩充到整个屏幕
<meta name="viewport" content="viewport-fit=cover">
  • 然后在body上设置安全区域,适配顶部状态栏和底部黑线
body{
	env(safe-area-inset-top);
	env(safe-area-inset-bottom);
}

env函数是ios新增的特性,需要注意的是,只有在viewport-fit设置为cover时,env才生效。在ios11.2前使用constant函数,但之后,constant就被废弃不再使用了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值