为什么有时候用translate来改变位置而不是定位

... 2025-7-10 CSS 小于 1 分钟

  • translate()是 transfrom 的一个值。改变 transfrom 或者 opacity 不会触发浏览器回流(reflow)或重绘(repaint),只会触发复合(compositions layers - 图层重组)。

  • translate 改变位置时,元素依旧会占据其原始空间,绝对定位不是。

  • 改变绝对定位会触发回流,进而触发重绘和复合。

  • transfrom 使浏览器为元素创建一个 GPU。但改变绝对定位会使用到 GPU。因此 translate()更高效,可以缩短平滑动画的绘制时间。

上次编辑于: 2025年7月10日 04:01
贡献者: HugStars