重排与重绘

浏览器渲染中重排与重绘的区别,以及为什么动画和样式更新时要关心它们。

#type / concept #status / growing #resource / css #tech / dev / frontend #platform / browser

[!info] related notes

重排与重绘

CSS 不只是“写出来能显示”,还涉及浏览器为了把样式渲染到屏幕上要付出多少代价。

一句话区分

  • 重排:重新计算布局
  • 重绘:重新绘制外观

什么是重排

当元素的几何信息发生变化时,浏览器需要重新计算布局。

典型情况:

  • 宽高变化
  • 位置变化
  • 内容增减影响布局
  • 字体尺寸变化导致盒子尺寸变化

什么是重绘

当样式变化不影响布局,只影响外观时,浏览器通常只需要重新绘制。

典型情况:

  • 颜色变化
  • 背景变化
  • 阴影变化

为什么要关心

因为重排通常比重绘更重,而频繁重排会直接影响交互流畅度。

尤其在:

  • 复杂页面
  • 高频动画
  • 低端设备

上会更明显。

为什么常说优先动画 transformopacity

因为这类属性通常更容易避免触发布局重算,对性能更友好。

所以很多动效优化建议,本质上是在说:

尽量少改几何布局,多改合成层更容易处理的属性。

最短记忆方式

重排改布局,重绘改外观;动画优先考虑 transformopacity

创建于 2026/3/25 更新于 2026/5/27