性能优化之避免文字size抖动,减少重排重绘

450 阅读1分钟

性能优化之避免文字size抖动,减少重排重绘

先举一个例子,直观的体验一下。什么是文字size抖动?

  • case链接:js.jirengu.com/kazez/9 (刷新复现)

    image.png image.png 首先,为什么会抖动?

  • 因为,我们需要做响应式页面(兼容pc,平板,mobile),尺寸都是用 rem

  • 为保证布局正常,我们会去根据当前的视口的width,来计算 设置<html的 font-size

    比如:当前视口宽度1055px,计算 设置如下: image.png

出现以上文字抖动的原因是什么?

文字 size抖动会触发重排重绘,影响用户体验

原因:

  1. 设置 <html的 font-size 的时机太晚了(比如放在vue的mounted里面)

    • 可以直接提前到<head 标签内(虽然会阻塞解析,但就几行js计算,性能影响可以忽略不计)
  2. 或者代码中设置了 不等于浏览器默认值的font-size,比如body { font-size: 12px }

  • 浏览器默认值是16px

码字不易,点赞鼓励!