zoukankan      html  css  js  c++  java
  • iPhone X H5页面适配

    iPhone X H5页面适配

    iPhone X出来已经很久了,之前做的H5页面大多没有考虑iPhone X的适配问题。但随着iPhone X拥有的人数越来越多。对于它的适配就不得不提上了日程,成为的迫在眉睫不可不做的事情。所以赶紧去研究了下网上关于iPhone X适配的一些文章。

    没有适配前

    在没有考虑iPhone X的时候,在几乎所有机型上页面效果都是正常的。但当到了iPhone X上就不得不考虑齐刘海以及下面的小黑条。
    之前似乎看到过苹果官方对于齐刘海这些属性有特殊处理,还给了官方适配的方案。所以就去看了看。
    苹果官方的解决方案如下:

    关于viewport-fit

    PhoneX的适配,在iOS 11中采用了viewport-fit的meta标签作为适配方案;viewport-fit的默认值是auto。
    viewport-fit取值如下:

    描述
    auto 默认:viewprot-fit:contain;页面内容显示在safe area内
    cover viewport-fit:cover,页面内容充满屏幕
    默认情况下页面会这样呈现

    页面内容会在安全区内呈现,但是上下会存在白条。体验上极其不佳。
    按照苹果官方的,加入viewport-fit属性后让内容填满全部屏幕。底部又会被黑条挡住,不过相较于安全区域展示效果要稍微好了一些。类似于下图,

    代码如下

    <!--默认值:可视窗口完全包含网页内容 相当于在安全区域展示-->
    <meta name="viewport" content="width=device-width, initial-scale=1.0, viewport-fit=auto">
    <!--或-->
    <meta name="viewport" content="width=device-width, initial-scale=1.0, viewport-fit=contain">
    <!--网页内容完全覆盖可视窗口-->
    <meta name="viewport" content="width=device-width, initial-scale=1.0, viewport-fit=cover">
    

    现在的问题是如何解决下部黑条遮挡问题,我的页面也如上有底部菜单栏。所以这样显示的话就会很影响体验。

    底部黑条解决方案

    其实我的想法是做媒体查询,毕竟iPhone X目前就这一个尺寸。所以对于此个例很合适,在看到下图的尺寸以后我就更加确信了这种解决方案。如下图,

    所以我的想法是在底部多加一个块,当是iPhone X的时候就显示,其他情况就隐藏。这就能解决这个问题,具体代码如下

    <div class="iphonex" style="display: none;">&nbsp;</div>
    
    @media only screen and ( 375px) and (height: 724px) {
      .iphonex{
      	height: pxTorem(82px);
      	 10rem;
      	position: fixed;
      	bottom: 0;
      	left:0;
      	background-image: url('../img/x_bar.png');
      	background-size: 10rem pxTorem(81px);
      	display: block;
      	z-index: 100;
      }
    }
    

    最终效果如下,

    这个还有个点,我们的h5主要在微信、QQ中传播,所以主要场景也是在这两块儿。微信顶部齐刘海本身就做了适配,所以屏幕高度应该是812-88=724,实际中也是这样的_

  • 相关阅读:
    HDU 2089 不要62
    HDU 5038 Grade(分级)
    FZU 2105 Digits Count(位数计算)
    FZU 2218 Simple String Problem(简单字符串问题)
    FZU 2221 RunningMan(跑男)
    FZU 2216 The Longest Straight(最长直道)
    FZU 2212 Super Mobile Charger(超级充电宝)
    FZU 2219 StarCraft(星际争霸)
    FZU 2213 Common Tangents(公切线)
    FZU 2215 Simple Polynomial Problem(简单多项式问题)
  • 原文地址:https://www.cnblogs.com/marvinemao/p/9077287.html
Copyright © 2011-2022 走看看