浮动元素修改宽高,是否会触发布局调整?

浮动元素修改宽高,是否会触发布局调整?

浮动元素自有其渲染之法,修改宽高影响布局否?

浮动元素的存在使文本内容对其环绕,倘若对其宽高频繁修改,是否会触发大规模的布局调整?

让我们从分层与渲染视角着手,进一步探究问题的答案。

从分层来看,浮动元素与其相邻元素处于同一层级。而从渲染角度观察,图像的绘制(paint)可被称作重绘,布局(layout)则对应重排。

为了验证,我们编写了测试代码:

<!-- 省略代码 -->
<div class="box">
  @@##@@
  文本内容
</div>
<!-- 省略代码 -->

并使用 javascript 定时修改图片的宽高:

setinterval(() => {
  img.dataset.height = (number(img.dataset.height || 0) + 1) % 3;
}, 1000 * 3);

从结果来看,在修改 width 属性时,布局被触发。添加 position: absolute; 属性到容器元素后,布局不再被触发。

通过 csstriggers.com 网站查询,我们也得到了相似的结论:

<div class="box" style="position: absolute;">
  @@##@@
  文本内容
</div>

因此,在浮动元素的容器元素设置了 position: absolute; 属性后,修改浮动元素的宽高不会触发重排。

以上就是浮动元素修改宽高,是否会触发布局调整?的详细内容,更多请关注其它相关文章!