rem自适应布局

心系少时言 等一不归人

监听浏览器,针对不同分辨率计算font-size

//方法一
(function (doc, win) {
    var docEl = doc.documentElement,
        resizeEvt = 'orientationchange' in window ? 'orientationchange' : 'resize',
        recalc = function () {
            var clientWidth = docEl.clientWidth;
            if (!clientWidth) return;
            /*720为设计稿大小*/
            docEl.style.fontSize = 100 * (clientWidth / 720) + 'px';
        };
    if (!doc.addEventListener) return;
    win.addEventListener(resizeEvt, recalc, false);
    doc.addEventListener('DOMContentLoaded', recalc, false);  })(document, window);
//方法二
var bli = 100 / 750;
var FontSize = function(){
    if($(window).width() <= 750){
        $('html').css({
            'font-size': $(window).width() * bli
        });
    }else{
        $('html').css({
            'font-size': '100px'
        });
    }
};
FontSize();
$(window).resize(function(){
    FontSize();
});
//方法三
;(function (doc, win) {
  var resizeEvt = 'orientationchange' in window ? 'orientationchange' : 'resize'

  function calc() {
    var dEl = document.documentElement,
      clientWidth = dEl.clientWidth
      // minWidth = 1024,
      // maxWidth = 1920

    // if (clientWidth > maxWidth) {
    //   clientWidth = maxWidth
    // } else if (clientWidth < minWidth) {
    //   clientWidth = minWidth
    // }

    dEl.style.fontSize = 100 * (clientWidth / 1920) + 'px'
  }

  win.addEventListener(resizeEvt, calc);
  doc.addEventListener('DOMContentLoaded', calc);
})(document, window)

只需在js中添加如上一段代码,然后结果就是 100px = 1rem; 之后就可以使用rem实现自适应布局。

注意要在HTML页面顶部添加如下 meta 标签:
<meta charset="UTF-8">
<!-- 根据浏览器的屏幕大小自适应的展现合适的效果 -->
<meta name="applicable-device" content="pc,mobile" />
<!-- 移动端 浏览器中页面将以原始大小显示,不允许缩放 -->
<meta name="viewport" content="width=device-width,initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no,viewport-fit=cover" />
<!--自动选择更好的浏览器-->
<meta name="renderer" content="webkit">
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容