前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >让你的WEB和APP一分钟适配 iPhone X

让你的WEB和APP一分钟适配 iPhone X

作者头像
腾讯NEXT学位
发布2018-05-14 16:12:13
1.2K0
发布2018-05-14 16:12:13
举报

iPhone X昨日已经开抢了

然而面对 iPhone X 这个奇葩的屏幕

你和你的编辑器准备好了吗?

因为 iPhone X 的刘海设计,Web 在 iPhone X横屏时,可能会有些问题:

  1. 默认情况,iPhone X 会将页面填充到安全区域(safe area),就像上面的图一样,一般情况下是没有问题的;
  2. 但如果是全屏 Web App 就会有问题了,比如背景色和页面的契合程度之类的;
  3. 有的 iOS app 内置 WKwebview 可能会为了避免一些bug,而采用统一的行为,就是禁用 iOS 11 自己的内容区域判断,从而让 H5 默认全屏,如下图:

解决方案

1. 默认全屏
<meta name="viewport" content="width=device-width, 
(接上)initial-scale=1.0, viewport-fit=cover">  

在 viewport 的 meta 属性中,添加 viewport-fit=cover 即可。

viewport-fit 默认值为 auto/contain,全屏值为cover,是不是感觉很熟悉?嗯,和 background-size 以及 object-fit 一样的。

2. 设置页面边距为安全区域边距
body{  
    padding: 
        constant(safe-area-inset-top) 
        constant(safe-area-inset-right) 
        constant(safe-area-inset-bottom) 
        constant(safe-area-inset-left);  
}

嗯,constant() 以及 safe-area-inset-top safe-area-inset-right safe-area-inset-bottom safe-area-inset-left 是 iOS 11 webview 新增加的特性,专门用于应对刘海的。

当然,这里的padding只是用于匹配iPhone X默认的安全区域的,你可以设置任何值,不过建议要不小于默认的安全区域值。

当前版本横屏时,各属性的值

safe-area-inset-top = 0  
safe-area-inset-right = 44px  
safe-area-inset-bottom = 21px  
safe-area-inset-left = 44px  

竖屏时各值都是 0

但竖屏时需要特别留意

status-bar(44px) 和 home-indicator(34px)

完成以上操作

这样就能一分钟适配iPhoneX啦

是不是很简单

快行动起来让你WEB和APP走在时尚的前列线上


本文作者:掘金

原文链接:https://juejin.im/post/59f302eb518825550f53d839

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2017-10-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 腾讯NEXT学位 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 解决方案
    • 1. 默认全屏
      • 2. 设置页面边距为安全区域边距
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档