10-29:什么是重绘和回流

博客介绍了HTML解析生成DOM树、CSS解析生成CSSOM树,二者结合生成渲染树。阐述了重绘和回流的概念,列举了触发重绘和回流的情况,如添加或删除可见DOM元素等,还给出减少重绘、回流的方法,如修改class名、利用cssText属性等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

解析HTML,生成DOM树,解析CSS,生成CSSOM树,将DOM树和CSSOM树结合生成渲染树(Render Tree)
一、 重绘:
当影响DOM元素可见性的属性发生变化时,就会重新计算属性,浏览器会重新描绘相应的元素,这个过程叫重绘。
比如: background-color, border-color , visibility 等等。
二、回流 (重排)
当渲染树中的一部分或者全部因为元素的尺寸、布局、隐藏等改变而需要重新构建的时候,这时候就会发生回流。

三、什么时候会发生回流和重绘

添加或删除可见的DOM元素

元素的位置发生变化

元素的尺寸发生变化(包括外边距,内边距,边框大小,高度和宽度等)

内容发生变化,比如文本变化或图片被另一个不同尺寸的图片所替代

页面一开始渲染的时候 (这肯定避免不了)

浏览器的窗口尺寸变化 (因为回流是根据视口的大小来计算元素的位置和大小的)

回流一定会触发重绘,而重绘不一定会回流
----------------
四、如何减少重绘、回流???

修改html元素中对应的class名,利用class替换样式

csstext(利用cssText 属性合并所有改变,然后一次性写入)

避免设置多层内联样式

避免使用table布局

使用css3硬件加速,可以让transform、opacity、filters等动画不会引起重绘

display: none (隐藏元素、应用修改、重新显示) 
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值