rem适配,解决用户设置系统字体大小导致样式错乱问题

开发移动端有一段时间了,目前移动端主流的适配方案依然是rem。由于rem适配以根元素字体大小为基准的单位,当用户设置了系统字体大小的时候,普通的rem适配方法会失效,导致样式错乱。我在开发的时候也遇到这个问题,所以在原有rem适配方法上加了校验功能。

链接:https://github.com/blcyzycc/hs_rem


(function (doc, win) {
  var remFull = 3.75 // 3.75rem全屏
  var docEl = doc.documentElement
  var resizeEvt = 'orientationchange' in window ? 'orientationchange' : 'resize'
  var recalc = function () {
    var clientWidth = docEl.clientWidth
    if (!clientWidth) return;

    var fontSize = clientWidth / (remFull * 100) * 100
    docEl.style.fontSize = fontSize + 'px'

    var eDivWidth = 0
    var eDiv = document.createElement('div')

    eDiv.style.width = remFull + 'rem'
    eDiv.style.height = '1px'
    eDiv.style.position = 'fixed'
    eDiv.style.boxSizing = 'border-box'
    document.body.appendChild(eDiv)
    eDivWidth = eDiv.clientWidth

    if (clientWidth !== eDivWidth) {
      var timer = setInterval((function () {
        clientWidth = docEl.clientWidth
        eDivWidth = eDiv.clientWidth

        if (clientWidth !== eDivWidth) {
          docEl.style.fontSize = fontSize * (clientWidth / eDivWidth) + 'px'
        } else {
          clearInterval(timer)
          document.body.removeChild(eDiv)
        }
        return arguments.callee
      })(), 100)
    } else {
      document.body.removeChild(eDiv)
    }
  };
  if (!doc.addEventListener) return;
  win.addEventListener(resizeEvt, recalc, false)
  doc.addEventListener('DOMContentLoaded', recalc, false)
})(document, window);
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 昨天是开学第一天,有些不适应,主要是各种常规事务的忙碌,开学典礼,发书,常规要求,物色班委等等事情。 接到新生有些...
    华客鲁俊阅读 321评论 5赞 1
  • 0827聆听的是叶老师所讲的点问搜三个字去接触一个新工具 小学时候妈妈给我买了一个打字机,同时也给我一本打字的练习...
    清凤徐来简书作者阅读 190评论 0赞 0
  • 第一饮食,吃太多吃太饱人的精力都要去消化这些食物,人体没有得到休息,各种器官,肝胆,胃里都要继续工作大脑血气就会缺...
    c5646c213098阅读 505评论 0赞 0
  • 整改意见:ps-ef|grepsshd|grep-v"grep"ps-ef|grepsshd ps-ef:打开所有...
    留白_bb77阅读 456评论 1赞 0
  • 那一天 你穿上洁白的婚纱 在天下人眼里,当然我更希望在你眼里 你是最美的 这一年 南国冬暖 桃花误入她们的春天 依...
    笑燕书阅读 270评论 0赞 0

友情链接更多精彩内容