从页面布局的角度看
transform
和 position:relative
的效果是一样的。
差别在于,transform
可以简单地作用于 position:absolute
的元素上面,而 position:relative;
还得加额外的 html
从动画角度来说
使用 transform
或 position
实现动画效果时是有很大差别。
使用 transform
时,可以让 GPU 参与运算,动画的 FPS 更高。
使用 position
时,最小的动画变化的单位是 1px
,而使用 transform
参与时,可以做到更小(动画效果更加平滑)
参考资料: Paul Irish 的 Why Moving Elements With Translate() Is Better Than Pos:abs Top/left
总结
- position 是为页面布局而生的。
- transform 是为动画而生的。