iphoneX 刘海屏幕导致 h5 页面不能正常的全屏显示了,就需要对
页面进行适配,下面就详细说说如何适配。

首先上一张适配之前的图:

可以看到页面顶部被遮挡,底部贴着最下面

ios11 增加新特性,增加webkit 的 css 函数,css 预定义变量
四个预定义变量为设定安全区域和边界的距离,如下:

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

safe-area-inset-left 默认是 0
safe-area-inset-right 默认是 0
safe-area-inset-top 默认是 44px
safe-area-inset-bottom 默认是 34px

css 函数 env() 和 constant()
这两个函数都是 webkit 中 css 函数,可以直接使用变量函数,只有在 webkit 内核下才支持

env 函数
必须在 ios >= 11.2 才支持

constant 函数
必须 ios < 11.2 支持

在写的时候要做到兼容

padding-top: constant(safe-area-inset-top);
padding-top: env(safe-area-inset-top);
padding-bottom: constant(safe-area-inset-bottom);
padding-bottom: env(safe-area-inset-bottom);

适配之后如图:

可以看到底部安全区域个人感觉是有点多了的,所以也可以不用 safe-area-inset-bottom 这个属性,通过媒体查询(利用iphoneX独特的型号参数)来给底部留下预留空间:

// iphoneX、iphoneXs
@media only screen and (device-width: 375px) and (device-height: 812px) and (-webkit-device-pixel-ratio: 3),
// iphone Xs Max
only screen and (device-width: 414px) and (device-height: 896px) and (-webkit-device-pixel-ratio:3),
// iphone XR
only screen and (device-width: 414px) and (device-height: 896px) and (-webkit-device-pixel-ratio:2)
{.container {padding-top: constant(safe-area-inset-top);padding-top: env(safe-area-inset-top);&.safe-bottom {padding-bottom: 13px;}}
}

使用 css 适配 iphoneX 刘海屏相关推荐

  1. android齐刘海屏幕适配,Html5适配iphoneX刘海屏的简单实现i

    iPhoneX遮住刘海屏幕就黑一下 怎么解除这种设置啊 在手机桌面找到设置,点击打开. 在设置界面找到通用,点击进去. 在通用界面找到辅助功能,点击进去. 在辅助功能界面找到显示调节,点击进去. 在显 ...

  2. H5 CSS适配手机刘海屏高度

    设置css样式 关键在于padding-top的设置,自动适配刘海屏的高度 .header {position: relative;display: flex;align-items: center; ...

  3. 如何用CSS适配iPhoneX底部小横条

    如何用CSS适配iPhoneX底部小横条 前言 iPhoneX 取消了物理按键,改成底部小黑条,这一改动导致网页出现了比较尴尬的屏幕适配问题.对于网页而言,顶部(刘海部位)的适配问题浏览器已经做了处理 ...

  4. css适配iphoneX

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

  5. 沉浸式状态栏实现,完美适配Android刘海屏,终极兼容

    第一篇博客献给曾经帮助我N次的CSDN,在此感谢那些帮助我头发越来越少的***. 刘海屏出来有一段时间了,为了适配刘海屏找了不少方案,感觉都比较费劲. 因为我们项目需求,状态栏是渐变色,所以我采用了全 ...

  6. Android 屏幕适配之刘海屏适配(notch 适配)

    引言 首先先翻译一下 notch 即 凹痕 的意思,那我们就认为是 "刘海" 就可以了. 目前,市场手机的潮流就是推出 全面屏.齐刘海 的手机,比如现在的华为.oppo .vivo ...

  7. Flutter iPhoneX 刘海屏适配

    对于Flutter来说,刘海屏主要适配的是上下的边距, 需要把不可点击的区域留出来,同时要把背景颜色和图片放上去. 对于上面的边距, 如果使用 Scaffold , appBar已经自动为我们做好了适 ...

  8. ios webview iphoneX 刘海屏适配

    参考文章:https://ayogo.com/blog/ios11-viewport/ 问题 webview 在iphoneX中的一些表现会不满足业务预期,如下广告,头部和底部都会留有空白,而业务方真 ...

  9. cordova应用兼容iOS11+和iPhoneX刘海屏

    前言 最近开发的cordova应用需要兼容 iOS 11+ ,以及 iPhone X 的刘海屏,查了一些资料,这里做下总结. 首先看下正常打包后的App界面,上下有明显的黑色区域,并没有占满整个屏幕. ...

最新文章

  1. 卷积神经网络的“封神之路
  2. 【Groovy】MOP 元对象协议与元编程 ( 使用 Groovy 元编程进行函数拦截 | 实现 GroovyInterceptable 接口 | 重写 invokeMethod 方法 )
  3. java遍历集合选择题_Java集合知识测试B
  4. 优化SQL Server数据库查询方法
  5. 解决Visual Studio 找不到报表控件、rdlc中文乱码
  6. mysql错误代码1813_ERROR 1813 (HY000) at line 404: Tablespace for table '`xxx`.`xxxxx`' exists.
  7. 函数式编程的兴衰与当前之崛起
  8. linux 启动/关闭多个py脚本
  9. pytorch flatten函数_1. PyTorch中的基本数据类型——张量
  10. sftp访问_实时数据处理探索:接收、处理、访问
  11. iOS archive(归档)的总结 (序列化和反序列化,持久化到文件)
  12. 自动驾驶仿真相关调研
  13. 微生物群-肠道-大脑轴:从运动到情绪
  14. linux服务器22端口不通,怎么解决linux的端口不通问题
  15. 【uniapp】使用扫码插件,解决uni.scanCode扫码效率低的问题
  16. SAP PS 第9节 合并采购申请、组合WBS之详解
  17. 计算机任务计划程序已损坏,win7系统弹出任务计划程序窗口显示该任务映像损坏或已篡改0x80041321错误代码的解决方法...
  18. 2010武汉IT环境~
  19. 来,新手们,Internet Download Manager,艺术升华
  20. 项目awesome-semantic-segmentation-pytorch以及FCN、Unet、deeplabv1、deeplabv2、deeplabv3、deeplabv3+的网络

热门文章

  1. iis服务器里网站无法访问,IIS服务器网站无法访问解决方法(图文).doc
  2. 安卓 android
  3. MATLAB STK构建卫星轨道姿态控制仿真演示系统
  4. VC++ 绘制线条 OnLButtonDown函数(DrawView.cpp) 利用SDK全局函数实现画线功能 利用MFC的CDC类实现画线功能 利用MFC的CClientDC类实现画线功能
  5. IOS开发者自带弱网测试工具界面说明NETWORK LINK CONDITIONER
  6. JQ...CSS3爱心飘落特效
  7. mysql 用sql语句创建数据库和表
  8. PAT甲级考纲(最少的时间换尽可能多的分数)
  9. CSP-J 2021 网络连接
  10. 关于ELF格式文件里面的调试信息解读