刘海屏安全距离设置

首先meta标签设置

<meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1,minimum-scale=1,user-scala
ble=no,viewport-fit=cover">
image.png

☆ 注意红框处位置的写法,否则不生效

应用样式

@supports (padding-top: env(safe-area-inset-top)) {
        .{你的classname} {
              padding-top: env(safe-area-inset-top);
          }
}

注: 该写法只针对ios端生效,android端需要原生端给出安全距离高度

记录一个坑: 刘海屏安全距离不生效

我们项目里写死了width: 750,meta标签这样写的:

<meta name="viewport" content="width=750,user-scalable=no,maximum-scale=1,viewport-fit=cover">

导致刘海屏幕渲染出来的安全距离始终比预期的小,这种情况下就需要根据设备宽度进行一个比例转换:

1. 上js代码,获取设备的真实宽度

document.documentElement.style.setProperty('--device-width', window.screen.width)

此处用到了css变量 --device-width,详见阮一峰CSS变量教程

2. 上css代码,按照比例添加padding-top

.{你的classname} {
    padding-top: calc(env(safe-area-inset-top) / var(--device-width) * 750);
}

附上:理解viewport width=device-width参考

1. meta name="viewport" content="width=device-width,initial-scale=1.0" 究竟什么意思
2. 一些关于Viewport与device-width的东西~
3. name="viewport" width="device-width" 到底都是啥

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • iphoneX的面部识别功能很强大。但是在浏览器屏幕显示上,在观看上不会引起问题,但是在默认情况下会有一些显示问题...
    放任自由f0阅读 797评论 0 0
  • 移动的端常见问题 ios滑动不流畅 上下滑动页面会产生卡顿,手指离开页面,页面立即停止运动。整体表现就是滑动不流畅...
    kalrase阅读 311评论 2 1
  • 参考: https://webkit.org/blog/7929/designing-websites-for-i...
    IamaStupid阅读 2,441评论 0 0
  • 1.浮层弹框 蒙层下锁死 首先定义一个函数 // 禁止默认事件触发 function unableTouchmov...
    bboy小松阅读 277评论 0 0
  • meta [设置全屏] <meta name="viewport" content="width=device-w...
    站着瞌睡阅读 3,596评论 2 1