您是否有任何理由想使用 `translate()` 而不是 `absolute` 定位,或反之亦然? 为什么?
Topics
CSS性能
在GitHub上编辑
translate()
是 CSS transform
属性的一个可能值。 当使用 translate()
时,该元素仍占用其原有空间(类似`position: relative')。 但是当改变元素的绝对定位时,这些元素会从页面的流程中被移除,周围元素的定位也会受到影响。 因此必须重新计算页面布局。
更改 transform
或 opacity
并不会触发浏览器的回流或重绘,而是在合成层单独计算和绘制。 另外改变绝对定位会触发回流。 使用transform
浏览器会在GPU层中进行渲染,而absolute
则在CPU层面进行 。 因此,translate()
是更有效的,并将导致更短的绘制时间,以实现更平滑的动画。