With CSS3 transform, we can move, scale, turn, spin, and stretch elements.
A transform is an effect that lets an element change shape, size and position.
You can transform your elements using 2D or 3D transformation.
Property | Browser Support | ||||
---|---|---|---|---|---|
transform |
Internet Explorer 9 requires the prefix -ms-.
Firefox requires the prefix -moz-.
Chrome and Safari requires the prefix -webkit-.
Opera requires the prefix -o-.
In this chapter you will learn about the 2d transform methods:
You will learn about 3D transforms in the next chapter.
With the translate() method, the element moves from its current position, depending on the parameters given for the left (X-axis) and the top (Y-axis) position:
The value translate(50px,100px) moves the element 50 pixels from the left, and 100 pixels from the top.
With the rotate() method, the element rotates clockwise at a given degree. Negative values are allowed and rotates the element counter-clockwise.
The value rotate(30deg) rotates the element clockwise 30 degrees.
With the scale() method, the element increases or decreases the size, depending on the parameters given for the width (X-axis) and the height (Y-axis):
The value scale(2,4) transforms the width to be twice its original size, and the height 4 times its original size.
With the skew() method, the element turns in a given angle, depending on the parameters given for the horizontal (X-axis) and the vertical (Y-axis) lines:
The value skew(30deg,20deg) turns the element 30 degrees around the X-axis, and 20 degrees around the Y-axis.
The matrix() method combines all of 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.
How to rotate a div element 30 degrees, using the matrix method:
The following table lists all the transform properties:
Property | Description | CSS |
---|---|---|
transform | Applies a 2D or 3D transformation to an element | 3 |
transform-origin | Allows you to change the position on transformed elements | 3 |
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 |