position: relative;
也是相对自己当前位置。
transform: translate(x,y);
也是相对于当前位置偏移吧?
有什么区别呢?
position: relative;
也是相对自己当前位置。
transform: translate(x,y);
也是相对于当前位置偏移吧?
有什么区别呢?
今天发现一个重要区别,当要偏移的元素里面有fixed元素时,translate会作用在fixed元素上,从而破坏fixed效果(几乎不会有人想偏移fixed元素)。如果换成relative,则里面的fixed依然可以fixed。
5 回答1.4k 阅读
5 回答1.5k 阅读✓ 已解决
2 回答894 阅读✓ 已解决
3 回答728 阅读✓ 已解决
4 回答1.2k 阅读✓ 已解决
2 回答1.3k 阅读✓ 已解决
2 回答863 阅读✓ 已解决
从页面布局的角度看
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
总结