The rotate3d() CSS function defines a transformation that moves the element around a fixed axis without deforming it. The amount of movement is defined by the specified angle; if positive, the movement will be clockwise, if negative, it will be counter-clockwise.
In the 3D space, rotations have three degrees of liberty, describing an axis of rotation. The axis of rotation is defined by an [x, y, z] vector and pass by the origin (as defined by the transform-origin CSS property. If the vector is not normalized, that is the sum of the square of its three coordinates is not 1, it will be normalized internally. A non-normalizable vector, like the null vector, [0, 0, 0], will cause the rotation not to be applied, without invaliding the whole CSS property.
rotate3d(x, y, z, a)
<number> describing the x-coordinate of the vector denoting the axis of rotation.<number> describing the y-coordinate of the vector denoting the axis of rotation.<number> describing the z-coordinate of the vector denoting the axis of rotation.<angle> representing the angle of the rotation. A positive angle denotes a clockwise rotation, a negative angle a counter-clockwise one.| Cartesian coordinates on ℝ2 | Homogeneous coordinates on ℝℙ2 | Cartesian coordinates on ℝ3 | Homogeneous coordinates on ℝℙ3 |
|---|---|---|---|
| This transform applies to the 3D space and cannot be represented on the plane. |
| ![]() | |
<p>foo</p> <p class="transformed">bar</p>
p {
width: 50px;
height: 50px;
background-color: teal;
}
.transformed{
transform: rotate3d(1,0,0,60deg);
background-color: blue;
}
<p>foo</p> <p class="transformed">bar</p>
p {
width: 50px;
height: 50px;
background-color: teal;
}
.transformed{
transform: rotate3d(1, 2, -1, 192deg);
background-color: blue;
}
© 2005–2017 Mozilla Developer Network and individual contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/CSS/transform-function/rotate3d