• 移动端H5开发自适应技巧


    移动端H5开发,必要要做到自适应各种分辨率的手机,下面由我为大家大致说一下,需要3步走

    第一:head标签中添加:

    <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />

     各个参数解释:

         可视区域的宽度,值可为数字或关键词device-width

         height:同width

         intial-scale:页面首次被显示是可视区域的缩放级别,取值1.0则页面按实际尺寸显示,无任何缩放

         maximum-scale=1.0, minimum-scale=1.0;可视区域的缩放级别,

         maximum-scale用户可将页面放大的程序,1.0将禁止用户放大到实际尺寸之上。

         user-scalable:是否可对页面进行缩放,no 禁止缩放

    第二:js动态获取屏幕的宽高,配合rem单位使用

      (function(designWidth, maxWidth) {
                   var doc = document,
                       win = window,
                       docEl = doc.documentElement,
                       remStyle = document.createElement("style"),
                       tid;
               
                   function refreshRem() {
                       var width = docEl.getBoundingClientRect().width;
                       maxWidth = maxWidth || 540;
                       width > maxWidth && (width = maxWidth);
                       var rem = width * 100 / designWidth;
                       remStyle.innerHTML = "html{font-size:" + rem + "px;}"
                   }
                   if (docEl.firstElementChild) {
                       docEl.firstElementChild.appendChild(remStyle)
                   } else {
                       var wrap = doc.createElement("div");
                       wrap.appendChild(remStyle);
                       doc.write(wrap.innerHTML);
                       wrap = null
                   }
                   refreshRem();
                   win.addEventListener("resize", function() {
                       clearTimeout(tid);
                       tid = setTimeout(refreshRem, 300)
                   }, false);
                   win.addEventListener("pageshow", function(e) {
                       if (e.persisted) {
                           clearTimeout(tid);
                           tid = setTimeout(refreshRem, 300)
                       }
                   }, false);
                   if (doc.readyState === "complete") {
                       doc.body.style.fontSize = "16px"
                   } else {
                       doc.addEventListener("DOMContentLoaded", function(e) {
                           doc.body.style.fontSize = "16px"
                       }, false)
                   }
               })(750, 750);

    下面的750参数就是UI设计图的参数,配合rem单位直接使用即可,自己可以封装一个js文件,到时候直接导入使用

    第三:html中使用rem

      rem是CSS3新增的相对长度单位,是指相对于根元素htmlfont-size计算值的大小。简单可理解为屏幕宽度的百分比。

  • 相关阅读:
    使用自定义RadioButton和ViewPager实现TabHost效果和带滑动的页卡效果
    Android 实现文件上传功能(upload)
    Hibernate配置文件
    ICMP报文分析
    AVC1与H264的差别
    内存泄漏以及常见的解决方法
    数据挖掘十大经典算法
    关于java的JIT知识
    Ubuntu安装二:在VM中安装Ubuntu
    hdu 1520Anniversary party(简单树形dp)
  • 原文地址:https://www.cnblogs.com/lvye001/p/11851791.html
Copyright © 2020-2023  润新知