h5网页兼容苹果刘海屏幕

<meta name=”viewport” content=”width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=0,viewport-fit=cover”>

参数解释
width – viewport的宽度 height – viewport的高度
initial-scale – 初始的缩放比例
minimum-scale – 允许用户缩放到的最小比例
maximum-scale – 允许用户缩放到的最大比例
user-scalable – 用户是否可以手动缩放

在为页面适配刘海屏之前,我们首先得在页面的 meta 中添加一个新的值:viewport-fit=cover

这么设置之后,视图端口被缩放以填充设备显示。换句话说就是网页会扩展到整个屏幕。

独立站

在介绍适配之前,我们先说一下适配用到的关键 CSS 函数 —— env()env()函数以类似于var函数的方式将用户代理定义的环境变量值插入到你的 CSS 中去。这个函数最初由 iOS 浏览器提供,用于允许开发人员将其内容放置在视口的安全区域中,该规范中定义的 safe-area-inset-* 值用于确保内容即使在非矩形的视区中也可以完全显示。

独立站
body {
  padding:constant(safe-area-inset-top)constant(safe-area-inset-right)constant(safe-area-inset-bottom)constant(safe-area-inset-left);/* 兼容 iOS < 11.2 */
  padding:env(safe-area-inset-top)env(safe-area-inset-right)env(safe-area-inset-bottom)env(safe-area-inset-left);/* 兼容 iOS >= 11.2 */}

加入这段css代码后的效果

独立站


参考链接:https://juejin.cn/post/6921998970214416397

js如何获取刘海屏安全区域高度的方法,首先先设置

:root {
    --sat: env(safe-area-inset-top);
    --sar: env(safe-area-inset-right);
    --sab: env(safe-area-inset-bottom);
    --sal: env(safe-area-inset-left);
}

然后就可以通过

getComputedStyle(document.documentElement).getPropertyValue("--sat")

带有px的数值,可以通过parseint(getComputedStyle(document.documentElement).getPropertyValue(“–sat”) ,10)的方法转为int

Leave a Reply

Your email address will not be published. Required fields are marked *