移动端rem适配问题,与px以百计算。

随着移动端的发展,rem的用途越来越广泛,很好的解决了px无法适配移动端的问题。因为rem是以根节点来计算的,在根节点不确定或者有变动的情况下,计算起来异常麻烦。下面的代码很好的解决了这个问题。

var fontSizes;

(function(win, doc) {

        win.setFontSize = function() {

        var winWidth = window.screen.availWidth;

        var dpr = window.devicePixelRatio;

        var u = navigator.userAgent;

        if(u.indexOf('Android') > -1 || u.indexOf('Linux') > -1) {

                doc.documentElement.style.fontSize = (winWidth / 640) * 100 + 'px';

                fontSizes = (winWidth / 640) * 100;

        } else if(u.indexOf('iPhone') > -1 || u.indexOf('iPad') > -1) {

                doc.documentElement.style.fontSize = (winWidth / 640) * 100 + 'px';

                fontSizes = (winWidth / 640) * 100;

        } else if(u.indexOf('Windows Phone') > -1) {

                alert("暂不支持winphone手机");

        } else {

                fontSizes = 100;

        }

 }

var evt = 'onorientationchange' in win ? 'orientationchange' : 'resize';

var timer = null;

win.addEventListener(evt,  function() {

        clearTimeout(timer);

        timer = setTimeout(setFontSize, 300);

}, {

        passive: false

});

win.addEventListener("pageshow", function(e) {

        if(e.persisted) {

                clearTimeout(timer);

                timer = setTimeout(setFontSize, 300);

        }

}, {

        passive: false

});

setFontSize();

}(window, document));


例如元素宽100px,高100px,只需要设置为高1rem,宽1rem就可以了。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容