rem的使用和自适应布局

1. 什么是 rem ?

rem是CSS3新增的一个相对单位(root em,根em),使用 rem 为元素设定字体大小时,是相对大小,相对的只是 HTML 根元素的字体大小。

根据不同的HTML 根元素的字体大小,可以完成自适应布局。

2. 为HTML设置font-size

rem 自适应JS

// 自动计算 fontSize 的大小
(function (doc, win) {
  var docEl = doc.documentElement,
    resizeEvt = 'orientationchange' in window ? 'orientationchange' : 'resize',
    recalc = function () {
      var clientWidth = docEl.clientWidth;
      if (!clientWidth) return;
      // 按照大于750px的均非移动端,统一设置最大fontSize为100px
      if (clientWidth >= 750) {
        docEl.style.fontSize = '100px';
      } else {
        // 小于750px 的为移动端,按比例自动计算html的fontSize
        // 例如Chrome浏览器的iPhone6/7/8模拟器,屏幕宽375px,则fontSize为 50px。1rem就等于50px
        docEl.style.fontSize = 100 * (clientWidth / 750) + 'px';
      }
    };

  if (!doc.addEventListener) return;
  win.addEventListener(resizeEvt, recalc, false);
  doc.addEventListener('DOMContentLoaded', recalc, false);
})(document, window);

2. CSS样式中即可使用 rem

.box {
    width: 6rem;
    height: 3rem;
    line-height: 3rem;
    font-size: 1.2rem;
    display: inline-block;
    background: #06c;
    color: #fff;
    border-radius: .5rem;
    text-decoration: none;
    text-align: center;    
}
posted @ 2021-10-03 14:49  青柠i  阅读(172)  评论(0编辑  收藏  举报