js动态设置rem

  • rem是相对应的根标签的字体大小的系数单位

  • 不同浏览器根标签的默认字体大小不一样,所以js动态设置

  • 在750的设计图下,我们为了便于开发将根元素的字体大小设置成100px

    • 100px是一个单位,是750/7.5得出
    • 道理是750,我自己分成7.5份出去,每份是100px长度,那么设计图中的一个div好比宽是160px,160/100,得出这个div占据1.6个单位,也就是1.6rem
    • 若不进行7.5的分割,那么直接将根元素设置成750px,子div比较得出 160/750 = 0.2133333 rem,太麻烦,
  • 设计图一般是750px,客户屏幕超过750px,就按照最大750px,且居中显示

    (function(doc, win) {
        var docEl = doc.documentElement,
            resizeEvt = "orientationchange" in window ? "orientationchange" : "resize",
            recalc = function() {
                if (docEl.clientWidth > 750) {
                    docEl.style.fontSize = "100px";
                    doc.getElementById("app").style.width = "750px";
                } else {
                    var width = docEl.clientWidth / 7.5;
                    docEl.style.fontSize = width + "px";
                    doc.getElementById("app").style.width = "auto";
                }
            };
        if (!doc.addEventListener) return;
        win.addEventListener(resizeEvt, recalc, false);
        doc.addEventListener("DOMContentLoaded", recalc, false);
    })(document, window);
    
posted @ 2019-03-22 10:46  cnloop  阅读(6847)  评论(0编辑  收藏  举报