重绘不一定引起回流,回流一定会引起重绘
1.浏览器是怎么进行界面渲染的
-
解析PARSER htmL,生成DOM树
-
同时解析css生成样式规则
-
根据DOM树和样式规则生成渲染树
-
进行布局(回流/重排):根据生成的渲染树,得到节点的几何信息(位置大小)
-
进行绘制painting(重绘):根据计算和获取的信息进行整个页面的绘制
-
Display:展示在页面上
2.重绘和回流
- 回流(重排) 当RENDER tree中部分或者全部元素的尺寸,结构,布局等发发生改变的时候,浏览器就会重新旋绕部分或全部文档的过程称为回流
会导致回流的操作
1.页面的首次刷新
2.浏览器的窗口大小或位置发生变化
3.元素的大小或位置发生改变
4.改变字体的大小
5.内容的变化
6.激活css伪类
7.脚本操作DOM
(简单理解:影响到布局了就会有回流)
- 重绘 由于节点的样式改变不影响文档流的位置和文档布局