h5逻辑_解决h5页面嵌入ios兼容性问题

news/2025/1/8 18:25:54/

安全区域

如下图所示~ 蓝色部分为安全区域。处于安全区域内的内容不受圆角、齐刘海、小黑条的影响。
在这里插入图片描述
若是将h5页面嵌入app中,就需要进行适配—> 让h5页面展示在安全区域内。

tips: 安全区域是在ios11之后并且是iPhoneX及以上机型才有的。 因此我们只需适配以上机型其余机型不需考虑~

viewport-fit

iPhoneX对比起以前其他的手机,屏幕顶部变成了刘海屏,底部取消了物理按键改成了小黑条,这种改动导致了web开发产生了新的适配问题。

为了适配 iPhoneX,对现有 viewport meta 标签添加一个扩展属性:viewport-fit(iOS11 新增特性),用于设置网页在可视窗口的布局方式,可设置三个值:

contain: 可视窗口完全包含网页内容
cover:网页内容完全覆盖可视窗口
auto:默认值,跟 contain 表现一致
在这里插入图片描述

safe-area-inset-*

safe-area-inset-* 其实本质上是一个数值(不同手机值不同), 可以获取不同手机型号安全区距离上下左右的间距

  • safe-area-inset-left:安全区域距离左边边界的距离
  • safe-area-inset-right:安全区域距离右边边界的距离
  • safe-area-inset-top:安全区域距离顶部边界的距离
  • safe-area-inset-bottom :安全距离底部边界的距离

适配

需要将meta标签的 viewport-fit属性值设置为cover,表示网页内容完全覆盖可视窗口

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

此时,h5页面嵌入app之后,网页内容完全覆盖可视窗口(包含刘海儿+ 小黑条)。我们可以根据自己的需求来动态设置

示例1

现在设置一个固定在页面底部的按钮,在h5展示如下:
在这里插入图片描述
但是我们希望在ios上不要与小黑条重叠,展示如下:
在这里插入图片描述
因此在底部这块区域定位时,我们需要给这块底部元素添加padding,padding值为安全区域距离底部的距离->safe-area-inset-bottom

tips: 一半这种固定定位 小黑条的颜色会和这块元素颜色一致,因此设置padding即可~

position: fixed;
bottom: 0px;
height: 60px;
width: 355px;
background: #fff;
display: flex;
padding: 0 10px;
align-items: center;
justify-content: space-between;
padding-bottom: constant(safe-area-inset-bottom); /* 兼容 iOS < 11.2 */
padding-bottom: env(safe-area-inset-bottom); /* 兼容 iOS >= 11.2 */
.kefu{...
}
.btn{...
}
示例2

在这里插入图片描述
如下图,这是一个弹框,我们希望弹框底部的按钮不要与小黑条重合,此时有两个解决方案

  • 方案1: 给弹框设置padding-bottom
      padding-bottom: calc(14px + constant(safe-area-inset-bottom)); /* 兼容 iOS < 11.2 */padding-bottom: calc(14px + env(safe-area-inset-bottom)); /* 兼容 iOS >= 11.2 */
    
  • 方案2: 给关闭按钮设置margin-bottom
    margin-bottom: calc(12px + constant(safe-area-inset-bottom));
    margin-bottom: calc(12px + env(safe-area-inset-bottom));
    

http://www.ppmy.cn/news/51635.html

相关文章

《回顾活动引导:24个反模式与重构实践》读后感

《回顾活动引导&#xff1a;24个反模式与重构实践》读后感 前提 看过《敏捷回顾活动&#xff1a;团队从优秀到卓越之道》&#xff1b;其实我没看过 &#x1f600; 最高指导原则&#xff1a;理解并坚信每个人对自己的工作都已全力以赴拉斯维加斯规则&#xff1a;在回顾会上分享…

Java基础--->集合详解

文章目录 集合CollectionListSet MapHashMapHashtableLinkedHashMapTreeMap 集合 Collection ​ Collection一般存储的是列表数据 List ​ List存储的数据是有序可重复的 ArrayList ​ ArrayList数组存储&#xff0c;可以动态扩容&#xff0c;适合大量查找&#xff0c;线…

Linearx配置环境

代码地址 gitssh.dev.azure.com:v3/linearx/PowerDDS/PowerDDS LinearX-5G Wifi pwd: 50186058 Windows报错可以搜索错误代码找官方给出的解决方案 最新版本cmake&#xff1a;ubuntu 20.04安装(升级)cmake - 知乎 (zhihu.com) gtest&#xff1a;gtest的安装_liuzubing的博客…

文献阅读 Meta transfer learning-based super-resolution infrared imaging

题目 Meta transfer learning-based super-resolution infrared imaging 基于元迁移学习的超分辨率红外成像 摘要 我们提出了一种具有元迁移学习和轻量级网络的红外图像超分辨率方法。我们设计了一个轻量级网络来学习低分辨率和高分辨率红外图像之间的映射。我们使用外部数据…

python-数据库-4

数据查询 分页(限制查询返回条数) limit 子句 create table test(id int primary key auto_increment,name char(5),gerden varchar(2),grade double(4 , 1) );insert into test(name , gerden , grade) values (刘水东,男,89), (曹洪清,男,95), (轻岚,男,88), (泽瑞,男,90…

【SCI征稿】IEEE旗下1区人工智能类SCI, 稳定检索22年,仅3个月左右录用~

一、期刊简介&#xff1a; 1区人工智能类SCI&EI (高质量) 【期刊概况】IF:6.0-7.0, JCR1区, 中科院3区&#xff1b; 【终审周期】走期刊部系统&#xff0c;3个月左右录用&#xff1b; 【检索情况】SCI&EI双检&#xff0c;正刊&#xff1b; 【数据库收录年份】2001…

JVM中的垃圾回收概念及其基础算法说明

文章目录 一、 垃圾回收概述1、什么是垃圾&#xff1f;2、为什么我们需要GC 二、垃圾回收之判别对象死活1、标记阶段&#xff1a;引用计数算法2、标记阶段&#xff1a;可达性分析算法 二、 finalization 机制三、整理和清除对象1、标记-清除算法&#xff08;Mark-Sweep&#xf…

应急照明系统在民用建筑的设计应用与产品选型

【摘要】应急照明分为备用照明、安全照明及疏散照明。文章介绍了应急照明系统的设计、灯具选择、灯具布置、配电等要求。并结合实例进行疏散照明的计算&#xff0c;以指导应急照明系统的设计与应用。 【关键词】照度&#xff1b;光通量&#xff1b;消防应急灯具&#xff1b;A型…