哪些操作可以触发浏览器的重排(Reflow)
阅读数:109 评论数:0
跳转到新版页面分类
html/css/js
正文
浏览器的重排(Reflow)是指浏览器重新计算页面元素的位置和尺寸的过程。重排是一个计算密集型的过程,因为它需要更新渲染树,并且可能导致整个页面或页面的一部分重新绘制。触发重排的操作通常包括:
-
添加或删除可见的DOM元素: 当你向页面添加或从页面移除元素时,浏览器需要重新计算页面布局。
-
元素位置或尺寸的变化: 如果你改变了元素的宽度、高度、边距、填充或边框等属性,这会触发重排。
-
内容变化: 如果一个元素的内容发生变化,尤其是输入框中的文字变化,可能会导致周围元素的位置调整。
-
页面渲染初始化: 当页面初次渲染时,会发生重排。
-
CSS样式的变化: 修改元素的样式,尤其是布局相关的样式,会触发重排。
-
计算或获取某些属性: 访问某些属性或方法时,浏览器需要提供最新的计算值,如
offsetWidth
,offsetHeight
,scrollTop
,scrollLeft
,clientTop
,clientLeft
,getComputedStyle()
, 以及getBoundingClientRect()
等。 -
窗口或框架尺寸变化: 调整浏览器窗口的大小,或者修改
<iframe>
的尺寸也会触发重排。 -
激活CSS伪类: 如
:hover
(通过用户与页面交互时激活)。 -
设置
style
属性的值: 直接通过style
属性修改样式也会触发重排。
dom.style.height = "auto"; // 将元素的高度设置为自动,即元素的自然高度
const { height } = dom.getBoundingClientRect(); // 获取元素当前的自然高度
dom.style.height = 0; // 将元素的高度设置为0,这将导致元素的高度变化
dom.getBoundingClientRect(); // 触发浏览器的重排(reflow)以确保过渡能够执行
dom.style.height = height + 'px'; // 将元素的高度设置为之前获取的自然高度
相关推荐
一、概述
overflow属性用于当一个元素太大而无法适应父级窗口的大小时行为。具体又可以分为:
overflow-x 属性规定是否对内容的左/右边缘进行裁剪 - 如果溢出元素内容区域的话。
over
一、概述
background是css简写属性,可有一个或多个值,且可以按任意顺序放置:
background:
<bg-color>
<bg-image>
<position/bg-size>
Less是一个CSS的超集,Less允许我们定义变量,使用嵌套式声明,定义函数等。严格说Less包含两部分:(1)Less的语法 (2)Less预处理器。浏览器终究只认识CSS,所以Less文件
一、概述
CSS3中新增的一个函数,calculate(计算)的缩写。用于动态计算宽/高,你可以使用calc()给元素的各个属性设置值【margin、border、padding、font-size】