translate

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;

/* Global values */
translate: inherit;
translate: initial;
translate: revert;
translate: unset;

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 a translate() (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 a translate() (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 a translate3d() (3D translation) function.

none

Specifies that no translation should be applied.

Formal definition

Initial valuenone
Applies totransformable elements
Inheritedno
Percentagesrefer to the size of bounding box
Computed valueas specified, but with relative lengths converted into absolute lengths
Animation typea transform
Creates stacking contextyes

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
CSS Transforms Module Level 2
# individual-transforms

Browser compatibility

BCD tables only load in the browser

See also

Note: skew is not an independent transform value