如果元素的位置是绝对的,浏览器是否会渲染回流?

Tot*_*.js 6 javascript browser performance dom reflow

如果我有一个绝对位置的元素,我改变它的左边,顶部位置将回流到它的父母孩子?如果它们没有受到影响,那么它自己的孩子怎么样呢,因为它们也被左轴和上轴绝对定位?

如果我更改元素的宽度/高度但在父级和子级中没有重要性?

jfr*_*d00 14

具有绝对位置的对象不会影响页面的布局.布局页面而不考虑绝对定位的对象.移动绝对定位对象不会导致其他对象的任何重排.

移动具有绝对定位的对象将导致其子对象随之移动.它不会回流它们,它们将与它们的父容器一起移动.

  • 浏览器重排行为可能非常令人惊讶(特别是IE),所以我认为简单的响应是不必要的.有关示例,请参阅http://www.phpied.com/the-new-game-show-will-it-reflow/(注意`display:none` strangeness) (3认同)
  • 应该注意的是,虽然绝对定位的元素不会影响其他元素的位置,但在移动或调整这些项目的大小时,布局引擎仍可能重新运行。它只是看起来不像——所以要注意潜在的性能问题。 (3认同)

小智 5

对于具有绝对位置的元素,它不应该影响文档流,因此它的位置更改不应该导致页面 dom 树的回流(重新布局),但是如果您使用 Chrome DevTools 测试这个简单的情况,我们可以看到它确实会导致重新布局(整个文件)尽管在很短的时间内。可能渲染引擎没有将其作为特殊情况处理。

  • 这个错误已经被报告了吗?似乎绝对元素不应该触发祖先的回流。我在添加/删除绝对元素时也看到过这一点。 (2认同)