• H5 移动端开发注意事项


    一、meta标签的设置

       viewport视口属性设置

    <meta name="viewport"
        content="width=device-width,initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no,viewport-fit=cover">
    • width:视口的宽度,width=device-width:宽度是设备的宽度
    • initial-scale:初始化缩放,- initial-scale=1.0:不缩放
    • user-scalable:是否允许用户自行缩放,取值0或1,yes或no
    • minimum-scale:最小缩放
    • maximum-scale:最大缩放
    • 一般设置了不允许缩放,就没必要设置最大最小缩放了。
    • viewport-fit=cover 解决iphoneX、11、12等刘海儿屏和底部有安全区域都不能全凭问题,也需要配合页面高度设置为100vh,有时候100%不生效。

    二、单位的使用

      需使用百分比%、vw/vh、rem单位,如使用uni-app开发使用rpx(该框架已经做了单位转换)

      建议使用rem,转换rem单位的两种方式

      1、js计算设置根元素的fontSize,一般以750设计搞计算。需要放在页面头部header标签里边。

    <script>
        (function (doc, win) {
          var docEl = doc.documentElement,
            resizeEvt = 'orientationchange' in window ? 'orientationchange' : 'resize',
            recalc = function () {
              var clientWidth = docEl.clientWidth;
              if (!clientWidth) return;
              if (clientWidth >= 750) {
                docEl.style.fontSize = '100px';
              } else {
                docEl.style.fontSize = 100 * (clientWidth / 750) + 'px';
              }
            };
          if (!doc.addEventListener) return;
          win.addEventListener(resizeEvt, recalc, false);
          doc.addEventListener('DOMContentLoaded', recalc, false);
        })(document, window);
    </script>

      2、利用媒体查询设置元素的fontSize,可兼容大小屏幕,如不做ipad兼容,建议使用第一种。

    @media screen and (min- 320px) {
      html {
        font-size: 42.6667px;
      }
    }
    
    @media screen and (min- 360px) {
      html {
        font-size: 48px;
      }
    }
    
    @media screen and (min- 375px) {
      html {
        font-size: 50px;
      }
    }
    
    @media screen and (min- 400px) {
      html {
        font-size: 53.3333px;
      }
    }
    
    @media screen and (min- 414px) {
      html {
        font-size: 55.2px;
      }
    }
    
    @media screen and (min- 440px) {
      html {
        font-size: 58.6667px;
      }
    }
    
    @media screen and (min- 480px) {
      html {
        font-size: 64px;
      }
    }
    
    @media screen and (min- 520px) {
      html {
        font-size: 69.3333px;
      }
    }
    
    @media screen and (min- 560px) {
      html {
        font-size: 74.6667px;
      }
    }
    
    @media screen and (min- 600px) {
      html {
        font-size: 80px;
      }
    }
    
    @media screen and (min- 640px) {
      html {
        font-size: 85.3333px;
      }
    }
    
    @media screen and (min- 680px) {
      html {
        font-size: 90.6666px;
      }
    }
    
    @media screen and (min- 720px) {
      html {
        font-size: 96px;
      }
    }
    
    @media screen and (min- 760px) {
      html {
        font-size: 101.3333px;
      }
    }
    
    @media screen and (min- 800px) {
      html {
        font-size: 106.6666px;
      }
    }
    
    @media screen and (min- 960px) {
      html {
        font-size: 128px;
      }
    }

    三、移动端如使用有软键盘弹出的页面,尽量不使用fixed定位,输入框input获取焦点得时,虚拟键盘会把fixed元素顶上去,ios中有时候fixed定位会失效,一般使用绝对定位。

    四、ios页面滑动不流畅问题(如引用滑动插件可不做处理

    .scroll-y{
        /* 使之可以滚动 */
        overflow-y: scroll;
        /* 增加该属性,可以增加弹性 */
        -webkit-overflow-scrolling: touch;
    }

    五、new Date()日期格式注意

      ios不支持new Date('2020-11-20 20:20')这种格式,会报NAN,安卓支持,ios支持的格式为new Date('2020/11/20 20:20')

    let date = '2020-11-20 20:20' 
    date.replace(/-/g, '/')    

    六、移动端尽量使用flex布局,不使用float浮动。

    七、移动端加载图片尽量使用2倍图,安卓浏览器加载图片,有些设备会模糊。

  • 相关阅读:
    SQL Server 日期和时间函数
    sql日期格式化函数
    C#中事件的使用
    CSS中的display:inline-block
    用aspnet_regiis注册Framework4.0框架
    什么是CSS hack
    第一次MySQL的SQL注入实验
    (二分)Block Towers(cf626)
    (多线程dp)Matrix (hdu 2686)
    (数位dp)Bomb (hdu 3555)
  • 原文地址:https://www.cnblogs.com/zhanglongke/p/13993263.html
Copyright © 2020-2023  润新知