This site is mobile accessible. Press the "Tap Here" button to use a smaller font-size.
Smartphone icons created by Freepik - Flaticon
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:
The numbers in the table specify the first browser version that fully supports the property.
Property | |||||
---|---|---|---|---|---|
transform | 36.0 | 10.0 | 16.0 | 9.0 | 23.0 |
With the CSS
property you can use the following 2D transformation methods:Tip: You will learn about 3D transformations in the next chapter.
The
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); }
The
The following example rotates the <div> element clockwise with 20 degrees:
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:
div { transform: rotate(-20deg); }
The
The following example increases the <div> element to be two times of its
original width, and three times of its original height:
div { transform: scale(2, 3); }
The following example decreases the <div> element to be half of its original width and height:
div { transform: scale(0.5, 0.5); }
The
The following example increases the <div> element to be two times of its
original width:
div { transform: scaleX(2); }
The following example decreases the <div> element to be half of its original width:
div { transform: scaleX(0.5); }
The
The following example increases the <div> element to be three times of its
original height:
div { transform: scaleY(3); }
The following example decreases the <div> element to be half of its original height:
div { transform: scaleY(0.5); }
The
The following example skews the <div> element 20 degrees along the X-axis:
div { transform: skewX(20deg); }
The
The following example skews the <div> element 20 degrees along the Y-axis:
div { transform: skewY(20deg); }
The
The following example skews the <div> element 20 degrees along the X-axis,
and 10 degrees along the Y-axis:
div { transform: skew(20deg, 10deg); }
If the second parameter is not specified, it has a zero value. So, the following example skews the <div> element 20 degrees along the X-axis:
div { transform: skew(20deg); }
The
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())
div { transform: matrix(1, -0.3, 0, 1, 0, 0); }
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 |
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 |