是什么
- 回流:指的是浏览器计算元素的几何属性(如大小和位置)
- 重绘:指的是浏览器为了更新元素的外观属性(如颜色和背景)而进行的操作
触发时机
回流:
- 添加或删除可见的DOM元素
- 元素的位置发生变化
- 元素的大小发生变化
- 浏览器的窗口尺寸发生变化
重绘:
- 触发回流后,一定会触发重绘
- 外观属性发生变化(如颜色和背景)
如何避免
- 批量修改样式,不要单独修改样式
- 避免使用table布局,因为table布局中一个元素发生变化,整个table布局就要重新计算
- 推荐使用visibility: hidden(元素在页面上仍然存在,只是不可见),而不是display: none(元素在页面上不存在了)