为什么使用 transform-style: preserve-3d 时,perspective 属性应设置在父元素上?

为什么使用 transform-style: preserve-3d 时,perspective 属性应设置在父元素上?

透视应设置在 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 效果。

以上就是为什么使用 transform-style: preserve-3d 时,perspective 属性应设置在父元素上?的详细内容,更多请关注其它相关文章!