用Rem来无脑复原Web挪动端自适应的页面

用Rem来无脑复原Web挪动端自适应的页面:

代码:
(function (win,doc){
    if (!win.addEventListener) return;
    var html=document.documentElement;
    function setFont()
    {var cliWidth=html.clientWidth;
        html.style.fontSize=100*(cliWidth/640)+'px';    
    }   
    win.addEventListener('resize',setFont,false)
    doc.addEventListener('DOMContentLoaded',setFont,false)
})(window,document);
解读:

  起首,不去鸟不支持事宜监听的浏览器(IE6、7、8),固然不写也能够,由于对字号的自适应的需求都是挪动端。
  当涌现窗口大小转变的时刻给window绑定一个监听,运转一个叫setFont的函数;当页面的Dom构造加载完也运转setFont(或许不监听直接setFont()运转也能够。)
  setFont函数用来猎取屏幕分辨率,然后按比例来设置html的字号。
  我这里是以100px为基本来缩放。为何是100px?待我细细申明:
我们平常拿到手的设想稿都是640px的,我们不以手机分辨率为考量,假如纯真1:1复原640px的页面,那末我们的页面根目录的字号就是100px(100*(640/640)=100px),那末那末设想稿上挑选一个案牍,然后PS通知我们字号是24px,那末我们就在页面里给这段案牍设置成0.24rem,那末640px的页面上字体就是24px啦。
  然后当我们斟酌比方页面是5/5s上看,那末当前页面字号就是50px(100*(320/640)=50px),那末0.24rem会以12px的大小展现出来。而640px宽的设想稿上的24px的字体,在320px的页面下,就是以12px显现的~
  这就是为何要以100px为基本字号,如许页面里量的是24px的字体,我代码里写0.24rem就会自动在页面里以12px显现了~而且它能够在6/6p上以13或许14px的款式展现出来~
  那你说,我遇到了奇葩的750px为分辨率的设想稿(比方是iphone6的),那你就把公式改成 100*(cliWidth/750)+px就行(也就是设想稿是多宽,公式里就写若干)。然后设想稿里量的Xpx大小,就写若干0.Xrem~什么分辨率的设想稿都不怕啦

tips:

  100px只是为了让我偷懒不用去换算字体大小的,假如喜好能够自身订1000px,然后写0.012rem如许。然则不要写像10px如许的基本字号,由于有些浏览器有最小字号的限定,比方设置了页面基本字号是10px,然则实际上最小只认11px,那末2rem的字体,自身是愿望以20px显现,能够末了是22px显现的。

    原文作者:chenjunbiao
    原文地址: https://segmentfault.com/a/1190000004821220
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞