性能优化之避免文字size抖动,减少重排重绘
先举一个例子,直观的体验一下。什么是文字size抖动?
-
case链接:js.jirengu.com/kazez/9 (刷新复现)
首先,为什么会抖动?
-
因为,我们需要做响应式页面(兼容pc,平板,mobile),尺寸都是用 rem
-
为保证布局正常,我们会去根据当前的视口的width,来计算 设置<html的 font-size
比如:当前视口宽度1055px,计算 设置如下:
出现以上文字抖动的原因是什么?
文字 size抖动会触发重排重绘,影响用户体验
原因:
-
设置 <html的 font-size 的时机太晚了(比如放在vue的mounted里面)
- 可以直接提前到<head 标签内(虽然会阻塞解析,但就几行js计算,性能影响可以忽略不计)
-
或者代码中设置了 不等于浏览器默认值的font-size,比如
body { font-size: 12px }
- 浏览器默认值是16px
码字不易,点赞鼓励!