transform CSS property lets you rotate, scale, skew, or translate an element. It modifies the coordinate space of the CSS visual formatting model .

The source for this interactive example is stored in a GitHub repository. If you'd like to contribute to the interactive examples project, please clone https://github.com/mdn/interactive-examples and send us a pull request.

If the property has a value different than none stacking context will be created. In that case, the element will act as a 包含块 for any position: fixed; or position: absolute; elements that it contains.

Only transformable elements can be transform ed. That is, all elements whose layout is governed by the CSS box model except for: non-replaced inline boxes , table-column boxes ,和 table-column-group boxes .

句法

/* Keyword values */
transform: none;
/* Function values */
transform: matrix(1.0, 2.0, 3.0, 4.0, 5.0, 6.0);
transform: matrix3d(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);
transform: perspective(17px);
transform: rotate(0.5turn);
transform: rotate3d(1, 2.0, 3.0, 10deg);
transform: rotateX(10deg);
transform: rotateY(10deg);
transform: rotateZ(10deg);
transform: translate(12px, 50%);
transform: translate3d(12px, 50%, 3em);
transform: translateX(2em);
transform: translateY(3in);
transform: translateZ(2px);
transform: scale(2, 0.5);
transform: scale3d(2.5, 1.2, 0.3);
transform: scaleX(2);
transform: scaleY(0.5);
transform: scaleZ(0.3);
transform: skew(30deg, 20deg);
transform: skewX(30deg);
transform: skewY(1.07rad);
/* Multiple function values */
transform: translateX(10px) rotate(10deg) translateY(5px);
transform: perspective(500px) translate(10px, 0, 20px) rotateY(3deg);
/* Global values */
transform: inherit;
transform: initial;
transform: unset;
					

transform property may be specified as either the keyword value none or as one or more <transform-function> values.

perspective() is one of multiple function values, it must be listed first.

<transform-function>
One or more of the CSS transform functions to be applied. The transform functions are multiplied in order from left to right, meaning that composite transforms are effectively applied in order from right to left.
none

Specifies that no transform should be applied.

可访问性关注

Scaling/zooming animations are problematic for accessibility, as they are a common trigger for certain types of migraine. If you need to include such animations on your website, you should provide a control to allow users to turn off animations, preferrably site-wide.

Also, consider making use of the prefers-reduced-motion media feature — use it to write a media query that will turn off animations if the user has reduced animation specified in their system preferences.

Find out more:

形式定义

初始值 none
适用于 transformable elements
继承 no
百分比 refer to the size of bounding box
计算值 as specified, but with relative lengths converted into absolute lengths
动画类型 a transform
Creates stacking context yes

形式句法

none | <transform-list>

where
<transform-list> = <transform-function>+

where
<transform-function> = <matrix()> | <translate()> | <translateX()> | <translateY()> | <scale()> | <scaleX()> | <scaleY()> | <rotate()> | <skew()> | <skewX()> | <skewY()> | <matrix3d()> | <translate3d()> | <translateZ()> | <scale3d()> | <scaleZ()> | <rotate3d()> | <rotateX()> | <rotateY()> | <rotateZ()> | <perspective()>

where
<matrix()> = matrix( <number>#{6} )
<translate()> = translate( <length-percentage> , <length-percentage>? )
<translateX()> = translateX( <length-percentage> )
<translateY()> = translateY( <length-percentage> )
<scale()> = scale( <number> , <number>? )
<scaleX()> = scaleX( <number> )
<scaleY()> = scaleY( <number> )
<rotate()> = rotate( [ <angle> | <zero> ] )
<skew()> = skew( [ <angle> | <zero> ] , [ <angle> | <zero> ]? )
<skewX()> = skewX( [ <angle> | <zero> ] )
<skewY()> = skewY( [ <angle> | <zero> ] )
<matrix3d()> = matrix3d( <number>#{16} )
<translate3d()> = translate3d( <length-percentage> , <length-percentage> , <length> )
<translateZ()> = translateZ( <length> )
<scale3d()> = scale3d( <number> , <number> , <number> )
<scaleZ()> = scaleZ( <number> )
<rotate3d()> = rotate3d( <number> , <number> , <number> , [ <angle> | <zero> ] )
<rotateX()> = rotateX( [ <angle> | <zero> ] )
<rotateY()> = rotateY( [ <angle> | <zero> ] )
<rotateZ()> = rotateZ( [ <angle> | <zero> ] )
<perspective()> = perspective( <length> )

where
<length-percentage> = <length> | <percentage>

范例

Translating and rotating an element

HTML

<div>Transformed element</div>
					

CSS

div {
  border: solid red;
  transform: translate(30px, 20px) rotate(20deg);
  width: 140px;
  height: 60px;
}
					

结果

More examples

Please see Using CSS transforms and <transform-function> 了解更多范例。

规范

规范 状态 注释
CSS Transforms Level 2
The definition of 'transform' in that specification.
编者草案 Adds 3D transform functions.
CSS Transforms Level 1
The definition of 'transform' in that specification.
工作草案 初始定义。

浏览器兼容性

The compatibility table on this page is generated from structured data. If you'd like to contribute to the data, please check out https://github.com/mdn/browser-compat-data and send us a pull request. 更新 GitHub 上的兼容性数据
Desktop Mobile
Chrome Edge Firefox Internet Explorer Opera Safari Android webview Chrome for Android Firefox for Android Opera for Android Safari on iOS Samsung Internet
transform Chrome 完整支持 36 Edge 完整支持 12 Firefox 完整支持 16
完整支持 16
preference (needs to be set to ). To change preferences in Firefox, visit about:config.
IE 完整支持 10 注意事项
完整支持 10 注意事项
注意事项 Internet Explorer does not support the global values initial and unset .
完整支持 Prefixed
Prefixed Implemented with the vendor prefix: -webkit-
完整支持 9 Prefixed 注意事项
Prefixed Implemented with the vendor prefix: -ms-
注意事项 Internet Explorer 5.5 or later supports a proprietary Matrix Filter which can be used to achieve a similar effect.
Opera 完整支持 23
完整支持 23
Prefixed Implemented with the vendor prefix: -webkit-
不支持 12.1 — 15
不支持 10.5 — 15 Prefixed
Prefixed Implemented with the vendor prefix: -o-
Safari 完整支持 9 WebView Android 完整支持 37
完整支持 37
完整支持 2 Prefixed 注意事项
Prefixed Implemented with the vendor prefix: -webkit-
注意事项 Android 2.3 has a bug where input forms will "jump" when typing, if any container element has a -webkit-transform .
Chrome Android 完整支持 36 Firefox Android 完整支持 16
完整支持 16
preference (needs to be set to ). To change preferences in Firefox, visit about:config.
Opera Android 完整支持 24
完整支持 24
Prefixed Implemented with the vendor prefix: -webkit-
不支持 12.1 — 14
不支持 11 — 14 Prefixed
Prefixed Implemented with the vendor prefix: -o-
Safari iOS 完整支持 9 Samsung Internet Android 完整支持 3.0
3D support Chrome 完整支持 12 Edge 完整支持 12 Firefox 完整支持 16 IE 完整支持 10 注意事项
完整支持 10 注意事项
注意事项 Internet Explorer 9.0 or earlier has no support for 3D transforms. Mixing 3D and 2D transform functions, such as -ms-transform:rotate(10deg) translateZ(0); , will prevent the entire property from being applied.
Opera 完整支持 15 Safari 完整支持 4 WebView Android 完整支持 3 Prefixed
完整支持 Prefixed
Prefixed Implemented with the vendor prefix: -webkit-
Chrome Android 完整支持 18 Firefox Android 完整支持 16 Opera Android 完整支持 14 Safari iOS 完整支持 3.2 Samsung Internet Android 完整支持 1.0

图例

完整支持

完整支持

见实现注意事项。

见实现注意事项。

用户必须明确启用此特征。

用户必须明确启用此特征。

要求使用供应商前缀或不同名称。

要求使用供应商前缀或不同名称。

另请参阅

元数据

  • 最后修改:
  1. CSS
  2. CSS 参考
  3. CSS Transforms
  4. 指南
    1. Using CSS transforms
  5. 特性
    1. <transform-function>
    2. backface-visibility
    3. perspective
    4. perspective-origin
    5. rotate
    6. scale
    7. transform
    8. transform-box
    9. transform-origin
    10. transform-style
    11. translate

Copyright  © 2014-2026 乐数软件    

工业和信息化部: 粤ICP备14079481号-1