前端教程:什么是重绘和重排?

2022-09-09  本文已影响0人  鹤子青云上

重绘(repaint或redraw):

重绘是指一个元素外观的改变所触发的浏览器行为,浏览器会根据元素的新属性重新绘制,使元素呈现新的外观。重绘发生在元素的可见的外观被改变,但并没有影响到布局的时候。比如,仅修改DOM元素的字体颜色(只有Repaint,因为不需要调整布局)。

重排(重构/回流/reflow):

当渲染树中的一部分(或全部)因为元素的规模尺寸,布局,隐藏等改变而需要重新构建, 这就称为回流(reflow)。每个页面至少需要一次回流,就是在页面第一次加载的时候。

触发重排的条件:任何页面布局和几何属性的改变都会触发重排:

页面渲染初始化(无法避免)

添加或删除可见的DOM元素

元素位置的改变,或者使用动画

元素尺寸的改变——大小,外边距,边框

浏览器窗口尺寸的变化

填充内容的改变,比如文本的改变或图片大小改变而引起的计算值宽度和高度的改变

总结:重排必定会引发重绘,但重绘不一定会引发重排。

上一篇 下一篇

猜你喜欢

热点阅读