使用rem实现H5元素自适应

2019-08-14  本文已影响0人  风暴小狼

H5开发由于不存在android dip这种相对单位,所以在适配时多多少少会出现兼容性问题。
rem是CSS3新引进来的一个度量单位,是直接相对于根元素,这就避开了很多层级关系。移动端新型浏览器对rem的兼容很好,可以放心使用。

以下写法是默认 1rem = 18px

    //使用相对单位rem
    var designW = 375;  //设计稿宽
    var font_rate = 18;    //字体大小
    //根据窗口宽度适配fontsize
    document.getElementsByTagName("html")[0].style.fontSize = document.body.offsetWidth / designW * font_rate + "px";
    document.getElementsByTagName("body")[0].style.fontSize = document.body.offsetWidth / designW * font_rate + "px";
    //监测窗口大小变化
    window.addEventListener("onorientationchange" in window ? "orientationchange" : "resize", 
        function() {
            document.getElementsByTagName("html")[0].style.fontSize = document.body.offsetWidth / designW * font_rate + "px";
            document.getElementsByTagName("body")[0].style.fontSize = document.body.offsetWidth / designW * font_rate + "px";
            }, false);
    //使用相对单位rem

所以在CSS标注单位时

width:180px;
转化为下面这种写法
width:10rem;//转换计算后为180/18=10rem
上一篇 下一篇

猜你喜欢

热点阅读