什么';CSS3平移法和CSS2相对定位法的区别是什么?

什么';CSS3平移法和CSS2相对定位法的区别是什么?,css,css-transforms,Css,Css Transforms,似乎这两个元素都可以使元素从当前位置移动。这两种方法可以互换吗?这两种方法并不完全相同:翻译元素不需要更改其顶部、左侧、右侧或底部CSS属性,因此,同样地,offsetTop/offseLeftJavascript属性不受CSS转换的影响。此外,元素的位置也可以是静态(因此不需要z索引) 如果改为使用position:relative,您将更改这些属性以在视觉上实现相同的效果 小提琴示例: 当然,如果您必须处理旧的浏览器(如IE8或FF2),那么必要的选择是相对定位,否则我看不到在这两种方法中选

似乎这两个元素都可以使元素从当前位置移动。这两种方法可以互换吗?

这两种方法并不完全相同:翻译元素不需要更改其
顶部
左侧
右侧
底部
CSS属性,因此,同样地,
offsetTop/offseLeft
Javascript属性不受CSS转换的影响。此外,元素的位置也可以是
静态
(因此不需要
z索引

如果改为使用
position:relative
,您将更改这些属性以在视觉上实现相同的效果

小提琴示例:


当然,如果您必须处理旧的浏览器(如
IE8
FF2
),那么必要的选择是相对定位,否则我看不到在这两种方法中选择一种的明显方便性(老实说,相对定位不需要多个前缀
-moz-
-webkit-
…就可以在任何地方工作)因此选择权在您(取决于布局).

对不起,我有点困惑。为什么顶部、左侧、右侧或底部CSS属性不改变?我的意思是所有这些属性都将元素的对应边设置为一个单位,使其向左/向右/向上/向下移动到其正常位置。因此,如果使用translate方法将元素从其正常位置移开,它们应该会根据o我的理解。@chaonextdoor:变换的工作方式与常规的相对定位有很大不同。例如,如果你有一个3D变换,应该如何计算元素的偏移量?它看起来像
translate()
实际上现在会改变元素的
offsetTop
offsetLeft
属性。我想知道这是什么时候改变的…什么?在哪个浏览器中看到的?