回流与重绘
创始人
2024-05-25 14:42:11
0

触发回流与重绘条件👉

回流

当渲染树中部分或者全部元素的尺寸、结构或者属性发生变化时,浏览器会重新渲染部分或者全部文档的过程就称为 回流。

引起回流原因

1.页面的首次渲染

2.浏览器的窗口大小发生变化

3.元素的内容发生变化

4.元素的尺寸或者位置发生变化

5.元素的字体大小发生变化

6.激活CSS伪类

7.查询某些属性或者调用某些方法

8.添加或者删除可见的DOM元素

在触发回流(重排)的时候,由于浏览器染页面是基于流式布局的,所以当触发回流时,会导致周围的DOM元素重新排列,它的影响范围有两种:

-全局范围:从根节点开始,对整个渲染树进行重新布局

-局部范围:对渲染树的某部分或者一个渲染对象进行重新布局

重绘

当页面中某些元素的样式发生变化,但是不会影响其在文档流中的位置时,浏览器就会对元素进行重新绘制,这个过程就是 重绘。

引起重绘原因

color、background 相关属性: background-color、background-image等

outline 相关属性: outline-color、 outline-width 、 text-decoration。

border-radius、visibility、 box-shadow

注意: 当触发回流时,一定会触发重绘,但是重绘不一定会引发回流。

如何避免回流和重绘

减少回流与重绘的措施:

1.操作DOM时,尽量在低层级的DOM节点进行操作

2.不要使用 table 布局,一个小的改动可能会使整个 table 进行重新布局

3.使用CSS的表达式

4.不要频繁操作元素的样式,对于静态页面,可以修改类名,而不是样式

5.使用absolute或者fixed,使元素脱离文档流,这样他们发生变化就不会影响其他元素

6.避免频繁操作DOM,可以创建一个文档片段 documentFragment ,在它上面应用所有DOM操作,最后再把它添加到文档中

7.将元素先设置 display: none ,:操作结束后再把它显示出来。因为在display属性为none的元素上进行的DOM操作不会引发回流和重绘

8.将DOM的多个读操作(或者写操作)放在一起,而不是读写操作穿插着写。这得益于浏览器的渲染队列机制。

浏览器针对页面的回流与重绘,进行了自身的优化-- 渲染队列

浏览器会将所有的回流、重绘的操作放在一个队列中,当队列中的操作到了一定的数量或者到了一定的时间间隔浏览器就会对队列进行批处理。这样就会让多次的回流、重绘变成一次回流重绘。

相关内容

热门资讯

保存时出现了1个错误,导致这篇... 当保存文章时出现错误时,可以通过以下步骤解决问题:查看错误信息:查看错误提示信息可以帮助我们了解具体...
汇川伺服电机位置控制模式参数配... 1. 基本控制参数设置 1)设置位置控制模式   2)绝对值位置线性模...
不能访问光猫的的管理页面 光猫是现代家庭宽带网络的重要组成部分,它可以提供高速稳定的网络连接。但是,有时候我们会遇到不能访问光...
表格中数据未显示 当表格中的数据未显示时,可能是由于以下几个原因导致的:HTML代码问题:检查表格的HTML代码是否正...
本地主机上的图像未显示 问题描述:在本地主机上显示图像时,图像未能正常显示。解决方法:以下是一些可能的解决方法,具体取决于问...
表格列调整大小出现问题 问题描述:表格列调整大小出现问题,无法正常调整列宽。解决方法:检查表格的布局方式是否正确。确保表格使...
不一致的条件格式 要解决不一致的条件格式问题,可以按照以下步骤进行:确定条件格式的规则:首先,需要明确条件格式的规则是...
Android|无法访问或保存... 这个问题可能是由于权限设置不正确导致的。您需要在应用程序清单文件中添加以下代码来请求适当的权限:此外...
【NI Multisim 14...   目录 序言 一、工具栏 🍊1.“标准”工具栏 🍊 2.视图工具...
银河麒麟V10SP1高级服务器... 银河麒麟高级服务器操作系统简介: 银河麒麟高级服务器操作系统V10是针对企业级关键业务...