过去,我们拿到的手机是方方正正的矩形,所以整个屏幕都可以看做是安全区域 Safe Area,而如今由于 iPhone X 及以上机型,屏幕上的“刘海”以及屏幕四周采用圆角的设计,对于开发者和设计师来说,这个刘海带给他们的是更多的麻烦。比如黄颜色的部分表示网页遮挡了,用户不可见的地方。

iPhoneX 及以上机型取消了物理按键,改成底部小黑条,对于网页而言,顶部(刘海部位)的适配问题浏览器已经做了处理,所以我们只需要关注底部与小黑条的适配问题即可(即常见的吸底导航、返回顶部等各种相对底部 fixed 定位的元素)。

适配之前需要了解的几个新知识

安全区域

安全区域指的是一个可视窗口范围,处于安全区域的内容不受圆角、齐刘海、小黑条影响,如下图蓝色区域:

也就是说,我们要做好适配,必须保证页面可视、可操作区域是在安全区域内。

viewport-fit

iOS11 新增特性,苹果公司为了适配 iPhoneX 对现有 viewport meta 标签的一个扩展,用于设置网页在可视窗口的布局方式,可设置三个值:

contain: 可视窗口完全包含网页内容(左图)

cover:网页内容完全覆盖可视窗口(右图)

auto:默认值,跟 contain 表现一致

env 函数 iOS11 新增特性,Webkit 的一个 CSS 函数,用于设定安全区域与边界的距离,有四个预定义的变量:

safe-area-inset-left:安全区域距离左边边界距离

safe-area-inset-right:安全区域距离右边边界距离

safe-area-inset-top:安全区域距离顶部边界距离

safe-area-inset-bottom:安全区域距离底部边界距离

这里我们只需要关注 safe-area-inset-bottom 这个变量,因为它对应的就是小黑条的高度(横竖屏时值不一样)。

我们设置 viewport-fit:contain,也就是默认的时候时;设置 safe-area-inset-left, safe-area-inset-right, safe-area-inset-top 和 safe-area-inset-bottom 等参数时不起作用的。

如何适配

了解了以上所说的几个知识点,接下来我们适配的思路就很清晰了。

第一步:设置网页在可视窗口的布局方式

新增 viweport-fit 属性,使得页面内容完全覆盖整个窗口:

<meta name=“viewport” content=“width=device-width, viewport-fit=cover”>

前面也有提到过,只有设置了 viewport-fit=cover,才能使用 constant 函数。

第二步:页面主体内容限定在安全区域内

这一步根据实际页面场景选择,如果不设置这个值,可能存在小黑条遮挡页面最底部内容的情况。

body {padding-bottom:  env(safe-area-inset-bottom);
}

第三步:fixed 元素的适配

如果 fixed 完全吸底元素(bottom = 0),可以通过加内边距 padding 扩展高度:

{padding-bottom:  env(safe-area-inset-bottom);
}

H5页面适配 iPhoneX相关推荐

  1. H5页面适配 iPhoneX全面屏手机

    要兼容IphoneX,尤其是使用 position: fixed;bottom: 0; 样式时,要确保底部栏处于安全区域 H5开发适配: 参考苹果开发者 参考文档 ios 开发适配: 参考: http ...

  2. H5页面适配iphoneX底部小黑条遮盖内容

    iphoneX取消了物理按键,改为底部小黑条,这也在页面开发的过程中,会出现底部内容被小黑条遮盖的现象,影响页面效果, 我们可以这也解决 1:增加viewport属性 viewport-fit=&qu ...

  3. h5页面适配iPhone X的方法

    项目接近尾声,测试时突然想起还有iphoneX需要适配,虽然页面都是自适应,但是由于iPhone X的特殊性,还是需要特殊对待.因为这个h5项目嵌入在原生项目中,适配就会有有种方式:1.在原生中用原生 ...

  4. 关于H5页面在iPhoneX刘海屏适配(转)

    关于H5页面在iPhoneX适配 ​1.  iPhoneX的介绍 屏幕尺寸 我们熟知的iPhone系列开发尺寸概要如下: △ iPhone各机型的开发尺寸 转化成我们熟知的像素尺寸: △ 每个机型的多 ...

  5. H5网页适配 iPhoneX,就是这么简单

    iPhoneX 取消了物理按键,改成底部小黑条,这一改动导致网页出现了比较尴尬的屏幕适配问题.对于网页而言,顶部(刘海部位)的适配问题浏览器已经做了处理,所以我们只需要关注底部与小黑条的适配问题即可( ...

  6. 【原】让H5页面适配移动设备全家 - 设计师篇 - PPT

    上一篇文章<pageResponse - 让H5适配移动设备全家>中分享了一个小插件让一套H5页面适配几乎所有移动设备,得到了一些同学的推荐和认可,这里感谢大家的支持. 在此之前也在部门前 ...

  7. 教你如何用 lib-flexible 实现移动端H5页面适配

    前话 好久没写教程了(可能会误导新手的菜鸟教程( ̄▽ ̄)"). 这是我的github,欢迎前端大大们和我一起学习交流 https://github.com/pwcong 最近入职公司做前端实 ...

  8. 移动端 H5页面适配

    一.基础概念 在了解如何做H5页面适配前,大家都应该把移动端涉及的一些概念搞明白,比如:dpr 是什么意思? 移动端H5解惑-概念术语(一) 二.为什么要做页面适配 2.1 PC端为什么要解决浏览器兼 ...

  9. H5|小程序|RN页面适配iphoneX【异形屏幕|底部安全区域】

    需求场景: H5页面有一个吸底的按钮,但是异形屏幕[iPhonex等],按钮一大半会被系统的小黑条挡住.需要适配在异形屏幕下,完整展示按钮,不被遮挡. 查了一些资料,发现为了应对刘海屏幕,苹果也给出了 ...

最新文章

  1. apache负载均衡的安装和实现方法
  2. 基于VTK的Qt应用程序开发
  3. oracle dbstart,dbstart: 未找到命令
  4. 1713. 得到子序列的最少操作次数
  5. WPF/Silverlight Undo/Redo框架
  6. 从Nginx、Apache工作原理看为什么Nginx比Apache高效!
  7. Java客户端开发是什么_客户端桌面应用一般是用什么技术开发的?
  8. zoj 3261 Connections in Galaxy War
  9. Android开发——常见的内存泄漏以及解决方案(二)
  10. Chrome历史版本下载地址
  11. 二级域名和一级域名的区别
  12. 【OpenGrok代码搜索引擎】四、OpenGrok使用指南
  13. 怎么简述计算机网络的含义,事业单位的计算机网络信息管理及实践意义论述
  14. Linux文件导入gitee仓库中
  15. 尽己力,听天命。无愧于心,不惑于情
  16. 恒大java_java可变参数
  17. mysql 加密狗_ESXI 5.1/5.5 主机添加或映射USB设备(加密狗)
  18. Mairadb数据库的备份和恢复
  19. speedoffice(Excel)怎么插入网页链接
  20. Python创建递增数列、递减数列、等差数列

热门文章

  1. 74.4k star 项目 YouTube-dl 重新上线,GitHub 强调将重点支持开源!
  2. 【有内鬼,终止交易】风靡朋友圈的壁纸,实现代码竟如此简单 | 原力计划
  3. 没能 PK 掉 WiFi 的 Li-Fi,可能是 5G 请来的救兵
  4. 400 道前端面试题!阿里、头条、网易等 19 家大厂面经全公开!
  5. 微信警告小游戏“分享滥用”;小米千亿估值再被下调;Facebook 最大规模重组 | CSDN 极客头条...
  6. 弃 Windows 转投 Linux,微软全面进军 IoT!
  7. 被拘捕 353 天后,三星“太子”李在镕被判缓刑当庭获释!
  8. 滴滴App突发Bug:滴滴一下,千元出发
  9. 再一次站在捆绑销售风口的携程该何去何从?
  10. linux把虚拟机上的文件共享,[转]windows中vmware虚拟机中的Linux如何进行文件的共享...