
透视应设置在 transform-style: preserve-3d 元素的父级元素上吗?
对于采用 css3 中的 transform-style: preserve-3d 的元素,perspective 属性通常建议设置在其父级元素上。
为何如此?
perspective 属性定义了相机与元素之间沿 z 轴的距离,从而创建 3d 效果。它与 transform-style: preserve-3d 一起作用,使得元素可以沿 z 轴旋转和移动而不会变形。
如果 perspective 直接应用于 transform-style: preserve-3d 元素,会导致变形,因为元素的 z 轴深度会随着其自身旋转和移动而变化。
示例
考虑以下代码:
.scene {
perspective: 600px;
}
.cube {
transform-style: preserve-3d;
}在这种情况下,透视是在 .scene 元素上设置的,它也是 .cube 元素的父级。这将产生预期的 3d 效果,在该效果中 .cube 可以沿 z 轴旋转而不会变形。
常见错误
错误地将 perspective 直接应用于 .cube 元素会导致变形。例如:
.cube {
perspective: 600px;
transform-style: preserve-3d;
}在这个示例中,perspective 应用于 .cube 元素,导致其变形。
因此,建议始终将 perspective 应用于 transform-style: preserve-3d 元素的父级元素,以实现正确的 3d 效果。










