rem移动端适配时 pc端也要能够正常显示

rem移动端适配下可能会出现这种情况,即,由于移动端h5我们通过js设置了html的font-size会根据dpr(设备像素比)大小而自适应变化,但是pc端的font-size固定是12px

这时就可能会出现pc端由于整个项目都是由rem作为单位的,移动端html的font-size都很大,在100px左右,而pc则是12px

下面贴上移动端适配代码,此段代码放在index.html中:

// 移动端适配
    (function(doc, win) {
      var docEl = doc.documentElement,
        resizeEvt = 'orientationchange' in window ? 'orientationchange' : 'resize',
        recalc = function() {
          var clientWidth = docEl.clientWidth;
          if (!clientWidth) return;
          if (clientWidth > 1024) {
            docEl.style.fontSize = '12px';
          } else {
            docEl.style.fontSize = 100 * (clientWidth / 750) + 'px';
          }
        };
      if (!doc.addEventListener) return;
      win.addEventListener(resizeEvt, recalc, false);
      doc.addEventListener('DOMContentLoaded', recalc, false);
    })(document, window);

现象如下2张图所示:

1、移动端h5

rem移动端适配时 pc端也要能够正常显示_第1张图片

2、pc端

 rem移动端适配时 pc端也要能够正常显示_第2张图片

那么如何做才能使移动端与pc端保持样式比例一致呢?

我们只需要做个媒体查询适配即可,如下代码所示:

@media screen and (min-width: 1024px) {
  html {
    font-size: 100px !important;
  }
}

pc端效果如下图: 

rem移动端适配时 pc端也要能够正常显示_第3张图片

你可能感兴趣的:(前端开发)