移动适配的几种方式

ElbertS33 7年前
   <p><strong>1.直接利用js适配</strong></p>    <pre>  (function (doc, win) {      var docEl = doc.documentElement,        resizeEvt = 'orientationchange' in window ? 'orientationchange' : 'resize',        recalc = function () {            var clientWidth = docEl.clientWidth;            if (!clientWidth) return;            docEl.style.fontSize = 100 * (clientWidth / 750) + 'px';        };      if (!doc.addEventListener) return;   win.addEventListener(resizeEvt, recalc, false);   doc.addEventListener('DOMContentLoaded', recalc, false);  })(document, window);</pre>    <p>例如:100px=1rem;10px=0.1rem;1px=0.01rem;</p>    <p><strong>2.利用js+less适配</strong></p>    <pre>  (function (win) {      function setUnitA() {          document.documentElement.style.fontSize = document.documentElement.clientWidth / 10 + "px";      }      var h = null;      window.addEventListener("resize", function () { clearTimeout(h); h = setTimeout(setUnitA, 300); }, false);      setUnitA();  })(window);</pre>    <p>less:文件顶部定义@unit: 750/10rem,然后css全文件的单位直接用@unit。</p>    <p>例如:100px=100/@unit;10px=10/@unit;1px=1/@unit;</p>    <p><strong>3.利用less适配。</strong></p>    <pre>  html {      font-size: 20px;  }  @media only screen and (min-width: 401px) {      html {          font-size: 25px !important;      }  }  @media only screen and (min-width: 428px) {      html {          font-size: 26.75px !important;      }  }  @media only screen and (min-width: 481px) {      html {          font-size: 30px !important;      }  }  @media only screen and (min-width: 569px) {      html {          font-size: 35px !important;      }  }  @media only screen and (min-width: 641px) {      html {          font-size: 40px !important;      }  }  @unit: 40rem;</pre>    <p>例如:100px=100/@unit;10px=10/@unit;1px=1/@unit;</p>    <p> </p>    <p>来自:https://zhuanlan.zhihu.com/p/23837333</p>    <p> </p>