Mobile CSS3转换不会更改元素';什么位置左边?

Mobile CSS3转换不会更改元素';什么位置左边?,mobile,css,mobile-safari,transform,Mobile,Css,Mobile Safari,Transform,有人能解释一下为什么使用下面的CSS代码不会改变元素的左位置吗 element { -webkit-transform:translate3d(200px,0,0); } 这会以不同的方式执行相同操作,但会更改左侧位置: element { position:absolute; left:200px; } 我选择了第一种结合CSS3转换的方法来触发mobile Safari上的硬件加速 编辑 一些澄清:看起来transform更改了左位置,但是如果您想使用Javascript获得左位置,它将

有人能解释一下为什么使用下面的CSS代码不会改变元素的左位置吗

element {
-webkit-transform:translate3d(200px,0,0);
}
这会以不同的方式执行相同操作,但会更改左侧位置:

element {
position:absolute;
left:200px;
}
我选择了第一种结合CSS3转换的方法来触发mobile Safari上的硬件加速

编辑 一些澄清:看起来transform更改了左位置,但是如果您想使用Javascript获得左位置,它将返回0。

位置转换(也称为翻译)不会更改元素的报告位置,这是正确的行为。当您转换元素时,您创建的元素不会反映在左/右属性(或任何其他属性)中,因为就页面的其余部分而言,元素仍处于其原始位置(也称为-当您转换元素时,页面不会回流以反映其新位置)。当您考虑scales.skews等时,这是有意义的,这是您可以使用变换进行的其他操作

更新:如果你想做繁重的工作,当前应用的转换矩阵将通过window.getComputedStyle()报告


更新:有人指出getBoundingBox现在可以正确地调整转换和翻译,这对我来说很有效:是的,转换是有效的,但是如果你尝试在转换完成后用javascript alert(element.style.left)获得左边的位置,你只会得到0。