h5苹果x适配,iPhonex适配

  h5苹果x适配,iPhonex适配

  IphoneX适配的关键在于页面如何适配“齐刘海”、底部操作区、大圆角的问题。

  IphoneX与其他手机相比的不同之处在于,虽然设备是同一块屏幕,但实际上是分成了几个模块。详情见下图:

  我们正常的一个网页,移到X上,效果是内容只显示在安全区域,非安全区域没有网页内容,也就是说在头部和底部会出现白块。怎么处理?

  解决办法

  1. 给body加一个 background-color

  为什么要添加背景色?有什么用?注意我们刚刚提到头和底部会出现白色块,实际上说是白色并不准确,因为这个颜色实际上来自于身体的背景色。另外,当我们向上或向下拉动内容时,会显示网页底部的内容和颜色,这其实就是正文的背景色。所以如果你想修改这两个效果,可以设置车身的背景色。

  2. 添加 viewport-fit = cover 的 meta 标签

  这一步至关重要。先看看结果:

  复制代码如下:

  meta name= viewport content= initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0,user-scalable=0,width=device-width,viewport-fit=cover /

  为什么很关键?iphoneX的主要问题是除了在安全区域无法显示网页内容,而它就是为解决这个问题而量身定制的。以上内容设置好后,顶部和底部可以打开到网页显示内容。

  然而,使用后,你会发现该区域是开放的,但内容(通常是导航栏)被“齐刘海”部分屏蔽。而且发现原来设定的100%的高度并没有占据全部的高度空间。我该怎么办?

  对于头部的高度和底部的高度,其实是有匹配值的,如下图所示:

  因此,我们有以下解决方案:

  1.修改我们的导航栏的高度,将safe-area-inset-top的高度添加到原来的高度,即44px;具体可以这样写:

  height:calc(nav height 44px);并重置副本在导航栏上的位置。

  2.iOS 11的浏览器chromium内核提供了以下内容,也就是上图中标注的那些值:

  如何使用safe-area-inset-top safe-area-inset-right safe-area-inset-left safe-area-inset-bottom?很简单:

  body { padding-top:constant(safe-area-inset-top);//是导航栏状态栏的高度88px padding-left:constant(safe-area-inset-left);//0 padding-right:如果屏幕不是垂直的,则为常量(safe-area-inset-right);//0 padding-bottom:如果屏幕不是垂直的,则为常量(safe-area-inset-bottom);//底弧的高度是34px}可能你没见过常数这个东西,我也没见过。也是为iphoneX设计的值。请注意,该值只有在使用viewport-fit=cover添加meta标记时才能生效。当然,在安卓手机上,是不会被识别的。

  3. 只为 IphoneX 生效

  注意我们做的适配只对IphoneX有效,不能影响其他手机,所以要做一个响应式的布局,就是使用媒体查询,如下:

  //注意这里用的是690px(安全区高度),不是812px@media only屏幕和(宽度:375px)和(高度:690px){ body {高度:100vh}}}有信息说这样用是可以的,但是我用的时候不行,所以放宽了一些条件,做了如下修改:

  @media only屏幕和(宽度:375px)和(最小高度:690px){ body {高度:100vh}}不同的是我把宽度375px,高度大于690px的设备识别为IphoneX。当然,目前只有X设备符合这个条件。

  4. 网页高度变化

  首先,这部分我不太清楚。我自己遇到的,所以我想解释一下:

  设置viewport-fit后,你会发现原来设置的100%的高度并不符合预期,只占用了部分屏幕空间。其实不用急,只需做如下修改:

  @media only屏幕和(宽度:375px)和(最小高度:690px) { body {高度:100vh}}vh是检查视口的高度,1vh=视口高度的1%,是一个绝对单位。设置100vh意味着全屏高度。

  5. 导航栏吸顶,任务栏吸底

  内容是可以拉动的,如果导航条跟着一起滑动,效果会很难看,这就需要我们达到导航条的顶部吸收效果。实施大家就不多说了。这是我的一个案例:

  @media only屏幕和(宽度:375px)和(最小高度:690 px){ div { position:fixed;显示:块;z指数:300;} .bg {身高:calc(3.5 rem 44px);} p { margin-top:44px;}}任务栏也一样。

  后语

  本文简单描述了如何处理IphoneX适配的具体步骤。如果想了解更多原理,欢迎在评论区交流。

  这就是本文的全部内容。希望对大家的学习和支持有帮助。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

相关文章阅读

  • 微博照片水印设置苹果教程怎么设置,苹果手机微博照片水印怎么设置
  • 苹果教育优惠只能用一次吗-,苹果教育优惠只能用一次吗澳门
  • 苹果平板显示itunes是什么意思,手机显示iTunes
  • 苹果教育优惠退款需要多久,苹果教育优惠退货了还能再买吗
  • 苹果win10单系统 没有boot camp,苹果电脑装windows系统boot camp
  • mac电脑装了windows,如何装回mac osx,苹果本重装mac osx
  • 苹果13和13pro屏幕尺寸一样吗,苹果13屏幕和12pro一样吗
  • 喜马拉雅怎么取消自动续费会员苹果手机,喜马拉雅怎么取消自动续费会员微信
  • 清理大师如何恢复删除的照片和视频,清理大师如何恢复删除的照片苹果手机
  • ,,苹果公司编程语言Swift语言简介
  • 苹果14pro真实图片价格,苹果14promax真实图片
  • 不能打开要写入的文件怎么办苹果手机,什么叫不能打开要写入的文件
  • ,,javascript鼠标跟随运动3种效果(眼球效果,苹果菜单,方向跟随)
  • ipad上用python编程,python苹果手机编译器
  • 苹果教育优惠什么时候开始2021,2020苹果教育优惠开始时间
  • 留言与评论(共有 条评论)
       
    验证码: