首页 > 试题广场 >

下列哪些情况可触发 reflow?

[不定项选择题]
下列哪些情况可触发 reflow?
  • 改变任何元素的 width 或 height
  • 改变 background-color
  • visibility:hidden
  • 改变 font-size
首先早知道reflow是什么? reflow(回流)是指浏览器为了重新渲染部分或者全部的文档,重新计算文档中的元素的位置和几何构造的过程。 因为回流可能导致整个Dom树的重新构造,所以是性能的一大杀手。 以下操作会引起回流: ① 改变窗口大小 ② font-size大小改变 ③ 增加或者移除样式表 ④ 内容变化(input中输入文字会导致) ⑤ 激活CSS伪类(:hover) ⑥ 操作class属性,新增或者减少 ⑦ js操作dom ⑧ offset相关属性计算 ⑨ 设置style的值 ...... 另外: reflow与repaint(重绘)是减缓js的几大主要原因,尤其是reflow更是性能杀手,所以我们应该想法避免。
发表于 2020-08-05 19:07:17 回复(0)
visibility:hidden隐藏元素,但是还占位置,所以不会导致reflow 而dispaly:none会隐藏元素的同时释放该元素所占位置,因此会导致reflow
发表于 2020-09-07 23:08:39 回复(0)
一般需要操作dom元素的都会引起reflow,也就是回流,重新构建dom树。
发表于 2022-05-23 23:32:46 回复(0)
visibility:hidden、opacity会引起重绘(repaint)会在DOM元素的视觉效果发生改变时被触发 display:none会引起重流(reflow)会在DOM元素的位置发生改变时被触发
发表于 2020-11-18 17:04:37 回复(0)
我记得之前有看到过说改变background-color也会触发重排的
发表于 2022-07-09 09:47:35 回复(0)
首先早知道reflow是什么? reflow(回流)是指浏览器为了重新渲染部分或者全部的文档,重新计算文档中的元素的位置和几何构造的过程。 因为回流可能导致整个Dom树的重新构造,所以是性能的一大杀手。 以下操作会引起回流: 
 ① 改变窗口大小 
② font-size大小改变 
③ 增加或者移除样式表 
④ 内容变化(input中输入文字会导致) 
⑤ 激活CSS伪类(:hover)
 ⑥ 操作class属性,新增或者减少 
⑦ js操作dom 
⑧ offset相关属性计算 
⑨ 设置style的值
发表于 2023-06-18 12:32:39 回复(0)
回流会重构DOM树,
发表于 2022-06-05 01:25:01 回复(0)
脱离文档流的元素,宽高改变也会引起reflow吗,我怎么记得脱离了文档流的元素不在渲染树上,啊啊啊,有些乱啊,不在渲染树上又怎么会被渲染呢
发表于 2020-11-27 12:14:05 回复(1)