CSS 2D Transforms #
CSS transforms allow you to move, rotate, scale, and skew elements.
Mouse over the element below to see a 2D transformation:
In this chapter you will learn about the following CSS property:
transform
Browser Support #
The numbers in the table specify the first browser version that fully supports the property.
Property | Chrome | Internet explorer | Mozila Firefox | Safari | Opera |
---|---|---|---|---|---|
transform | 36.0 | 10.0 | 16.0 | 9.0 | 23.0 |
CSS 2D Transforms Methods #
With the CSS transform
property you can use the following 2D transformation methods:
translate()
rotate()
scaleX()
scaleY()
scale()
skewX()
skewY()
skew()
matrix()
Tip: You will learn about 3D transformations in the next chapter.
#
The translate() Method #
The translate()
method moves an element from its current position (according to the parameters given for the X-axis and the Y-axis).
The following example moves the <div> element 50 pixels to the right, and 100 pixels down from its current position:
div {
transform: translate(50px, 100px);
}
div {
transform: rotate(20deg);
}
Using negative values will rotate the element counter-clockwise.
The following example rotates the <div> element counter-clockwise with 20 degrees:
Example #
div {
transform: rotate(-20deg);
}
div {
transform: scale(2, 3);
}
The following example decreases the <div> element to be half of its original width and height:
Example #
div {
transform: scale(0.5, 0.5);
}
div {
transform: scaleX(2);
}
The following example decreases the <div> element to be half of its original width:
div {
transform: scaleX(0.5);
}
div {
transform: scaleY(3);
}
The following example decreases the element to be half of its original height:
div {
transform: scaleY(0.5);
}
div {
transform: skewX(20deg);
}
div {
transform: skewY(20deg);
}
div {
transform: skew(20deg, 10deg);
}
If the second parameter is not specified, it has a zero value. So, the following example skews the
element 20 degrees along the X-axis:
div {
transform: skew(20deg);
}
The matrix() Method #
The matrix()
method combines all the 2D transform methods into one.
The matrix() method take six parameters, containing mathematic functions, which allows you to rotate, scale, move (translate), and skew elements.
The parameters are as follow: matrix(scaleX(),skewY(),skewX(),scaleY(),translateX(),translateY())
Example #
div {
transform: matrix(1, -0.3, 0, 1, 0, 0);
}
CSS Transform Properties #
The following table lists all the 2D transform properties:
Property | Description |
---|---|
transform | Applies a 2D or 3D transformation to an element |
transform-origin | Allows you to change the position on transformed elements |
#
CSS 2D Transform Methods #
Function | Description |
---|---|
matrix(n,n,n,n,n,n) | Defines a 2D transformation, using a matrix of six values |
translate(x,y) | Defines a 2D translation, moving the element along the X- and the Y-axis |
translateX(n) | Defines a 2D translation, moving the element along the X-axis |
translateY(n) | Defines a 2D translation, moving the element along the Y-axis |
scale(x,y) | Defines a 2D scale transformation, changing the elements width and height |
scaleX(n) | Defines a 2D scale transformation, changing the element’s width |
scaleY(n) | Defines a 2D scale transformation, changing the element’s height |
rotate(angle) | Defines a 2D rotation, the angle is specified in the parameter |
skew(x-angle,y-angle) | Defines a 2D skew transformation along the X- and the Y-axis |
skewX(angle) | Defines a 2D skew transformation along the X-axis |
skewY(angle) | Defines a 2D skew transformation along the Y-axis |