页面适配的方法--rem

本文介绍了如何在浏览器控制台中使用JavaScript动态设置body的字体大小,基于devicePixelRatio调整1rem单位,以及检测设备对0.5px边距的支持,以实现响应式设计中的精准布局。
摘要由CSDN通过智能技术生成

废话不多说,这个方法可以直接在浏览器的控制台运行;需要注意的点在注释里;当然可以补充一些解绑事件的方法

(function flexible(window, document) {
  var docEl = document.documentElement;

  var dpr = window.devicePixelRatio || 1;

  // adjust body font size

  function setBodyFontSize() {
    if (document.body) {
      document.body.style.fontSize = 12 * dpr + "px";
    } else {
      document.addEventListener("DOMContentLoaded", setBodyFontSize);
    }
  }

  setBodyFontSize();

  // set 1rem = viewWidth / 10

  function setRemUnit() {
    var rem = docEl.clientWidth / 76.8; //这里默认是10等分的,手动改为24,这个时候1rem=1920px (设计稿的宽为1920px)/24px=80px   1920/25px=76.8px     (第二点的值的由来)

    docEl.style.fontSize = rem + "px";
  }

  setRemUnit();

  // reset rem unit on page resize

  window.addEventListener("resize", setRemUnit);

  window.addEventListener("pageshow", function (e) {
    if (e.persisted) {
      setRemUnit();
    }
  });

  // detect 0.5px supports

  if (dpr >= 2) {
    var fakeBody = document.createElement("body");

    var testElement = document.createElement("div");

    testElement.style.border = ".5px solid transparent";

    fakeBody.appendChild(testElement);

    docEl.appendChild(fakeBody);

    if (testElement.offsetHeight === 1) {
      docEl.classList.add("hairlines");
    }

    docEl.removeChild(fakeBody);
  }
})(window, document);

效果:

看"F&&Q"的大小变化

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值