The translate
CSS property allows you to specify translation transforms individually and independently of the transform
property. This maps better to typical user interface usage, and saves having to remember the exact order of transform functions to specify in the transform
value.
Syntax
/* Keyword values */
translate: none;
/* Single values */
translate: 100px;
translate: 50%;
/* Two values */
translate: 100px 200px;
translate: 50% 105px;
/* Three values */
translate: 50% 105px 5rem;
Values
- Single
<length-percentage>
value - A
<length>
or<percentage>
that specifies a 2D translation, with the same translation along both the X and Y axes. Equivalent to atranslate()
(2D translation) function with a single value specified. - Two
<length-percentage>
values - Two
<length>
or<percentage>
that specify the X and Y axis translation values (respectively) of a 2D translation. Equivalent to atranslate()
(2D translation) function with two values specified. - Three values
- Two
<length-percentage>
and single<length>
values that specify the X, Y, and Z axis translation values (respectively) of a 3D translation. Equivalent to atranslate3d()
(3D translation) function. none
- Specifies that no translation should be applied.
Formal definition
Initial value | none
|
Applies to | transformable elements |
Inherited | no |
Percentages | refer to the size of bounding box |
Computed value | as specified, but with relative lengths converted into absolute lengths |
Animation type | a transform |
Creates stacking context | yes |
Formal syntax
none | <length-percentage> [ <length-percentage> <length>? ]?where <length-percentage> = <length> | <percentage>
Examples
HTML
<div>
<p class="translate">Translation</p>
</div>
CSS
* {
box-sizing: border-box;
}
html {
font-family: sans-serif;
}
div {
width: 150px;
margin: 0 auto;
}
p {
padding: 10px 5px;
border: 3px solid black;
border-radius: 20px;
width: 150px;
font-size: 1.2rem;
text-align: center;
}
.translate {
transition: translate 1s;
}
div:hover .translate {
translate: 200px 50px;
}
Result
Specifications
Specification | Status | Comment |
---|---|---|
CSS Transforms Level 2The definition of 'individual transforms' in that specification. | Editor's Draft | Initial definition. |
Initial value | none
|
Applies to | transformable elements |
Inherited | no |
Percentages | refer to the size of bounding box |
Computed value | as specified, but with relative lengths converted into absolute lengths |
Animation type | a transform |
Creates stacking context | yes |
Browser compatibility
The compatibility table in 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.
Update compatibility data on GitHub
Desktop | Mobile | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
translate
|
Chrome
No support No |
Edge
No support No |
Firefox Full support 72 Full support 72 No support 60 — 72 Disabled' From version 60 until version 72 (exclusive): this feature is behind the |
IE
No support No |
Opera
No support No |
Safari
No support No |
WebView Android
No support No |
Chrome Android
No support No |
Firefox Android Full support 60 Full support 60 Disabled' From version 60: this feature is behind the |
Opera Android
No support No |
Safari iOS
No support No |
Samsung Internet Android
No support No |
Legend
- Full support
- Full support
- No support
- No support
- User must explicitly enable this feature.'
- User must explicitly enable this feature.
See also
Note: skew is not an independent transform value
translate by Mozilla Contributors is licensed under CC-BY-SA 2.5.