浏览器是如何进行页面渲染的?
1、解析(parser)HTML,生成DOM树;
2、同时解析css,生成样式规则;
3、根据DOM树和样式规则,生成渲染树;
4、进行布局Layout(回流),根据生成的渲染树,得到节点的几何信息(位置、大小等);
5、进行绘制Painting(重绘),根据计算和获取的信息进行整个页面的绘制;
6、展示再页面上。
回流
当渲染树中部分或全部元素的尺寸、结构、布局等发生改变时,浏览器就会重新渲染部分或全部文档的过程。
重绘
由于节点(元素)的样式的改变并不影响它在文档流中的位置和文档布局时(如color、outline等),称为重绘。
重绘不一定引起回流,而回流一定会引起重绘。
会引起回流的操作有哪些?
简而言之,只要影响到了布局,就会出现回流。
1、页面的首次刷新
2、浏览器窗口大小的改变
3、元素的大小或位置发生改变
4、改编字体的大小
5、内容的变化(如input的输入)
6、图片的大小变化
7、激活css伪类(如:hover)
8、 脚本操作DOM