透视属性

最后更新:2026-09-13

perspective 透视属性

perspective 用于定义 3D 变换的透视强度,即观察者眼睛到 z=0 平面的距离。值越小,透视效果越强(近大远小越夸张);值越大,透视越平缓。该属性需要设置在应用 3D 变换元素的父元素上,是构建真实立体场景的基础。

分类
初始值none
继承
适用于
可动画
CSS 版本CSS3
状态标准

📝 语法

perspective: none | <length>;

⚙️ 取值

类型描述
none关键字无透视
<length>类型透视距离

▶ 示例

编辑下方代码,在 playground 中查看实时效果:

🌐 浏览器支持

浏览器 ChromeChrome EdgeEdge FirefoxFirefox SafariSafari OperaOpera
perspective v36 v12 v16 v9 v23
所有主流浏览器均支持
提示: perspective 必须设置在父元素上,影响其所有应用 3D 变换的子元素;值通常取 500px~1500px 之间效果自然。
重要: none 表示无透视(相当于无限远),3D 变换会呈现正交投影效果,看起来没有纵深感。

❓ 常见问题

Qperspective 和 perspective-origin 有什么关系?
Aperspective 定义观察者到 z=0 平面的距离,决定透视强度(近大远小的夸张程度);perspective-origin 定义观察者视线方向在容器上的落点,决定从哪个角度看场景。两者都是 3D 观察的必要参数,设置在同一个父容器上,共同决定子元素 3D 变换的呈现。
Q为什么设置了 rotateY 但没有立体感?
A通常是父元素缺少 perspective,旋转后是平面效果;或父元素上有 overflow: hidden、opacity 小于 1、filter 等属性,会强制建立平面上下文把 3D 拍平。也可改用 transform: perspective(800px) rotateY(45deg) 在元素自身施加透视。
Qperspective 值设多大合适?
A值是观察者到元素的距离,值越小透视越强、变形越夸张,值越大越接近正交投影。一般页面效果取 500px~1500px 比较自然,800px~1000px 是常见选择;想要夸张的「鱼眼」效果可以用 200px~400px。可以根据元素尺寸按比例调整,让旋转时边缘位移适中。
Qperspective 属性和 transform: perspective() 函数有什么区别?
Aperspective 属性写在父元素上,统一为所有 3D 子元素提供同一个视点,多个子元素共享同一透视;perspective() 函数写在某个元素自己的 transform 里,只作用于该元素,且受函数在列表中的位置影响。父级透视更符合真实场景,函数形式适合单独给某个元素加透视。

📚 相关教程

Web-Tutorial.com

Web-Tutorial 技术团队

由多位开发者共同维护的编程教程平台。每篇教程由对应领域的开发者编写和审核,确保内容准确可靠。如发现任何问题,欢迎向我们反馈。

100%

🙏 帮我们做得更好

我们是刚上线的编程教程站,几个人的小团队,精力有限。页面虽经检查,难免还有疏漏——链接失效、排版错乱、内容有误、语言生硬……

如果您发现了,麻烦告诉我们,我们会在收到反馈后第一时间进行修复,再次感谢您的光临 🙏