css的回流和重绘

207 阅读1分钟
回流和重绘


 1、当render tree中的一部分(或全部)因为元素的规模尺寸,布局,隐藏等改变而需要重新构建。这就称为回流(其实我觉得叫重新布局更简单明了些)。每个页面至少需要一次回流,就是在页面第一次加载的时候。

 2、当render tree中的一些元素需要更新属性,而这些属性只是影响元素的外观,风格,而不会影响布局的,比如background-color。则就叫称为重绘。

 注:从上面可以看出,回流必将引起重绘,而重绘不一定会引起回流。


 任何对render tree中元素的操作都会引起回流或者重绘,

1、比如: 添加、删除元素(回流+重绘) 

2、隐藏元素,display:none(回流+重绘),visibility:hidden(只重绘,不回流) 

3、移动元素,比如改变top,left(jquery的animate方法就是,改变top,left不一定会影响回流),或者移动元素到另外1个父元素中。(重绘+回流) 

4、对style的操作(对不同的属性操作,影响不一样) 还有一种是用户的操作,

5、比如改变浏览器大小,改变浏览器的字体大小等(回流+重绘) 

 原文链接:https://blog.csdn.net/weixin_42284354/article/details/88633298