移动端必备rem布局

在写移动端布局的时候,个人比较喜欢的一段代码。

(function(win){
    var docEl = win.document.documentElement;
    var timer = '';
    function changeRem(){
        var width = docEl.getBoundingClientRect().width;
        if (width > 540)//最大宽度,若果兼容到ipad的话把这个去掉就行
        {
            width = 540;
        }
        var fontS = width/10;//把设备宽度10等分 等同于用vw来做
        docEl.style.fontSize = fontS + "px";
    }
    //页面尺寸发生改变的时候就再执行changeRem
    win.addEventListener("resize",function(){
        clearTimeout(timer);
        timer = setTimeout(changeRem,30);
    },false);
    //页面加载的时候,若果是调用缓存的话就再执行changeRem
    win.addEventListener("pageshow",function(e){
        if (e.persisted)//缓存
        {
            clearTimeout(timer);
            timer = setTimeout(changeRem,30);
        }
    },false);
    changeRem();
})(window)

简单解读下,浏览器默认字体大小16px=1rem,把浏览器宽度平均分为10份,如果设计稿是640*750,那么1rem=64px,宽度为100px的盒子就是,100/64rem。上面的注释比较清晰。

posted @ 2018-03-27 16:29  JeneryYang  阅读(151)  评论(0编辑  收藏  举报