变换原点属性

最后更新:2026-09-13

transform-origin 变换原点属性

transform-origin 用于设置元素变换的基准点(原点)位置。默认是元素的中心点(50% 50%),旋转、缩放等变换都围绕该点进行。通过调整原点位置,可以创造出截然不同的变换效果,例如绕着边缘旋转、从角落缩放等。

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

📝 语法

transform-origin: [<length> | <percentage> | left | center | right] [<length> | <percentage> | top | center | bottom] [<length>];

⚙️ 取值

类型描述
<length> | <percentage>类型变换原点坐标
left | center | right | top | bottom关键字预定义位置

▶ 示例

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

🌐 浏览器支持

浏览器 ChromeChrome EdgeEdge FirefoxFirefox SafariSafari OperaOpera
transform-origin v36 v12 v16 v9 v23
所有主流浏览器均支持
提示: 第三个值(Z 轴原点)只在 3D 变换中生效,通常与 perspective 配合使用;2D 变换只需前两个值。
提示: 使用关键字 left/center/right 和 top/center/bottom 更直观;需要精确控制时可使用百分比或长度值。

❓ 常见问题

Q为什么旋转时元素会「跑偏」?
A因为默认变换原点在元素的几何中心,rotate 围绕中心旋转,视觉上元素会绕中心转。想让元素绕着自身某个角或边旋转,需要把 transform-origin 设到那里,例如 transform-origin: top left; 元素就绕左上角旋转,产生「开门」「扇叶」等效果。
Qtransform-origin 会影响位移吗?
A不会。translate 是整体平移元素,与原点位置无关;原点只影响 rotate、scale、skew 这些「围绕某点进行的变换」。所以 transform: translate(30px) rotate(45deg) 中的位移结果不受 transform-origin 影响,但旋转和缩放的视觉中心会随原点改变。
Qtransform-origin 的百分比是相对于什么的?
A百分比相对于元素自身的尺寸计算。0% 0% 是左上角,50% 50% 是中心,100% 100% 是右下角,例如 transform-origin: 100% 50% 表示以右边中心为原点。也可以使用 left、center、right、top、bottom 关键字,或用 px 等长度值精确定位。
Qtransform-origin 能用于 3D 变换吗?第三个值怎么用?
A可以。前两个值定义 X/Y 平面上的原点,第三个值(长度)定义 Z 轴上的原点位置,默认是 0。例如 transform-origin: 50% 50% -20px 会把原点移动到元素后方 20px 处,让 rotateX 产生不一样的纵深效果。3D 场景还需要父元素有 perspective 才能看到。

📚 相关教程

Web-Tutorial.com

Web-Tutorial 技术团队

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

100%

🙏 帮我们做得更好

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

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