Perspective 属性必须放置在 transform-style: preserve-3d 元素的父级元素上吗?

perspective 属性必须放置在 transform-style: preserve-3d 元素的父级元素上吗?

Perspective属性的放置位置对3D效果的影响

本文探讨了在CSS中将Perspective属性放置在不同的元素上,对3D效果的影响。

问题:Perspective属性必须放置在transform-style: preserve-3d元素的父级元素上吗?

在一个示例中,当Perspective属性放置在父元素.scene上时,一个3D立方体正常旋转。然而,当将Perspective属性移动到立方体元素.cube上时,旋转效果出现了变形。

答案:

是否必须将Perspective属性放置在.cube.transform-style: preserve-3d的父元素.scene上取决于你希望实现的效果。

放在父元素.scene上:

  • 产生拉远的视角效果
  • 立方体旋转时不会变形

放在立方体元素.cube上:

  • perspective的Z轴深度在.cube上
  • 导致.cube的矩形在旋转时形变

具体原因:

Perspective属性控制3D变换的透视深度。当perspective放置在.cube元素上时,perspective的Z轴深度与.cube的Z轴深度一致。这会导致.cube内的.cube__face旋转时出现变形。

相反,当perspective放置在.scene元素上时,perspective的Z轴深度与.cube__face旋转时的Z轴深度一致。这可以产生拉远的视角效果,同时保持.cube__face形状不变。

结论:

Perspective属性的放置位置取决于所需的3D效果。对于拉远视角且不产生变形的效果,将其放置在transform-style: preserve-3d元素的父元素上是合适的。另一方面,如果希望旋转时出现变形,则可以将perspective属性放置在transform-style: preserve-3d元素上。

以上就是Perspective 属性必须放置在 transform-style: preserve-3d 元素的父级元素上吗?的详细内容,更多请关注其它相关文章!