Les transformations CSS vous permettent de déplacer, faire pivoter, mettre à l'échelle et incliner les éléments.
Passez la souris sur l'élément ci-dessous pour voir une transformation 2D :
<script> var x,y,n=0,ny=0,rotINT,rotYINT function rotateDIV() { x=document.getElementById("rotate2D") clearInterval(rotINT) rotINT=setInterval("startRotate()",10) } function startRotate() { n=n+1 x.style.transform="rotate(" + n + "deg)" x.style.webkitTransform="rotate(" + n + "deg)" x.style.OTransform="rotate(" + n + "deg)" x.style.MozTransform="rotate(" + n + "deg)" if (n==180 || n==360) { clearInterval(rotINT) if (n==360){n=0} } }Dans ce chapitre, vous découvrirez la propriété CSS suivante :
transformLes nombres dans le tableau spécifient la première version du navigateur qui prend entièrement en charge la propriété.
| Property | |||||
|---|---|---|---|---|---|
| transform | 36.0 |
10.0 |
16.0 |
9.0 |
23.0 |
Avec la propriété CSS transform vous pouvez utiliser les méthodes de transformation 2D suivantes :
translate()
rotate()
scaleX()
scaleY()
scale()
skewX()
skewY()
skew()
matrix()Conseil : Vous découvrirez les transformations 3D dans le chapitre suivant.
translate()
La méthode translate() déplace un élément de sa position actuelle (selon aux paramètres donnés pour l'axe X et l'axe Y).
L'exemple suivant déplace l'élément <div> de 50 pixels vers la droite, et 100 pixels en dessous de sa position actuelle :
div
{
transform: translate(50px, 100px);
}Essayez-le vous-même →
<!DOCTYPE html>
<html>
<head>
<style>
div {
width: 300px;
height: 100px;
background-color: yellow;
border: 1px solid black;
transform: translate(50px,100px);
}
</style>
</head>
<body>
<h1>The translate() Method</h1>
<p>The translate() method moves an element from its current position:</p>
<div>
This div element is moved 50 pixels to the right, and 100 pixels down from its current position.
</div>
</body>
</html>
rotate()La méthode rotate() fait pivoter un élément dans le sens des aiguilles d'une montre ou dans le sens inverse selon un degré donné.
L'exemple suivant fait pivoter l'élément <div> dans le sens des aiguilles d'une montre de 20 degrés :
div
{
transform: rotate(20deg);
}Essayez-le vous-même →
<!DOCTYPE html>
<html>
<head>
<style>
div {
width: 300px;
height: 100px;
background-color: yellow;
border: 1px solid black;
}
div#myDiv {
transform: rotate(20deg);
}
</style>
</head>
<body>
<h1>The rotate() Method</h1>
<p>The rotate() method rotates an element clockwise or counter-clockwise.</p>
<div>
This a normal div element.
</div>
<div id="myDiv">
This div element is rotated clockwise 20 degrees.
</div>
</body>
</html>
L'utilisation de valeurs négatives fera pivoter l'élément dans le sens inverse des aiguilles d'une montre.
L'exemple suivant fait pivoter l'élément <div> dans le sens inverse des aiguilles d'une montre de 20 degrés :
div
{
transform: rotate(-20deg);
}Essayez-le vous-même →
<!DOCTYPE html>
<html>
<head>
<style>
div {
width: 300px;
height: 100px;
background-color: yellow;
border: 1px solid black;
}
div#myDiv {
transform: rotate(-20deg);
}
</style>
</head>
<body>
<h1>The rotate() Method</h1>
<p>The rotate() method rotates an element clockwise or counter-clockwise.</p>
<div>
This a normal div element.
</div>
<div id="myDiv">
This div element is rotated counter-clockwise with 20 degrees.
</div>
</body>
</html>
scale()
La méthode scale() augmente ou diminue la taille d'un élément (selon les paramètres donnés pour la largeur et la hauteur).
L'exemple suivant augmente l'élément <div> pour qu'il soit deux fois supérieur à sa largeur d'origine et trois fois supérieur à sa hauteur originale :
div
{
transform: scale(2, 3);
}Essayez-le vous-même →
<!DOCTYPE html>
<html>
<head>
<style>
div {
margin: 150px;
width: 200px;
height: 100px;
background-color: yellow;
border: 1px solid black;
transform: scale(2,3);
}
</style>
</head>
<body>
<h1>The scale() Method</h1>
<p>The scale() method increases or decreases the size of an element.</p>
<div>
This div element is two times of its original width, and three times of its original height.
</div>
</body>
</html>
L'exemple suivant réduit l'élément <div> de la moitié de sa largeur et de sa hauteur d'origine :
div
{
transform: scale(0.5, 0.5);
}Essayez-le vous-même →
<!DOCTYPE html>
<html>
<head>
<style>
div {
margin: 150px;
width: 200px;
height: 100px;
background-color: yellow;
border: 1px solid black;
transform: scale(0.5,0.5);
}
</style>
</head>
<body>
<h1>The scale() Method</h1>
<p>The scale() method increases or decreases the size of an element.</p>
<div>
This div element is decreased to be half of its original width and height.
</div>
</body>
</html>
scaleX()La méthode scaleX() augmente ou diminue la largeur d'un élément.
L'exemple suivant augmente l'élément <div> pour qu'il soit deux fois supérieur à sa largeur d'origine :
div
{
transform: scaleX(2);
}Essayez-le vous-même →
<!DOCTYPE html>
<html>
<head>
<style>
div {
margin: 150px;
width: 200px;
height: 100px;
background-color: yellow;
border: 1px solid black;
transform: scaleX(2);
}
</style>
</head>
<body>
<h1>The scaleX() Method</h1>
<p>The scaleX() method increases or decreases the width of an element.</p>
<div>
This div element is two times of its original width.
</div>
</body>
</html>
L'exemple suivant réduit l'élément <div> de la moitié de sa largeur d'origine :
div
{
transform: scaleX(0.5);
}Essayez-le vous-même →
<!DOCTYPE html>
<html>
<head>
<style>
div {
margin: 150px;
width: 200px;
height: 100px;
background-color: yellow;
border: 1px solid black;
transform: scaleX(0.5);
}
</style>
</head>
<body>
<h1>The scaleX() Method</h1>
<p>The scaleX() method increases or decreases the width of an element.</p>
<div>
This div element is half of its original width.
</div>
</body>
</html>
scaleY()La méthode scaleY() augmente ou diminue la hauteur d'un élément.
L'exemple suivant augmente l'élément <div> pour qu'il soit trois fois supérieur à son élément d'origine. hauteur:
div
{
transform: scaleY(3);
}Essayez-le vous-même →
<!DOCTYPE html>
<html>
<head>
<style>
div {
margin: 150px;
width: 200px;
height: 100px;
background-color: yellow;
border: 1px solid black;
transform: scaleY(3);
}
</style>
</head>
<body>
<h1>The scaleY() Method</h1>
<p>The scaleY() method increases or decreases the height of an element.</p>
<div>
This div element is three times of its original height.
</div>
</body>
</html>
L'exemple suivant réduit l'élément <div> à la moitié de son élément d'origine hauteur:
div
{
transform: scaleY(0.5);
}Essayez-le vous-même →
<!DOCTYPE html>
<html>
<head>
<style>
div {
margin: 150px;
width: 200px;
height: 100px;
background-color: yellow;
border: 1px solid black;
transform: scaleY(0.5);
}
</style>
</head>
<body>
<h1>The scaleY() Method</h1>
<p>The scaleY() method increases or decreases the height of an element.</p>
<div>
This div element is half of its original height.
</div>
</body>
</html>
skewX()La méthode skewX() incline un élément le long de l'axe X de l'angle donné.
L'exemple suivant incline l'élément <div> de 20 degrés le long du Axe X :
div
{
transform: skewX(20deg);
}Essayez-le vous-même →
<!DOCTYPE html>
<html>
<head>
<style>
div {
width: 300px;
height: 100px;
background-color: yellow;
border: 1px solid black;
}
div#myDiv {
transform: skewX(20deg);
}
</style>
</head>
<body>
<h1>The skewX() Method</h1>
<p>The skewX() method skews an element along the X-axis by the given angle.</p>
<div>
This a normal div element.
</div>
<div id="myDiv">
This div element is skewed 20 degrees along the X-axis.
</div>
</body>
</html>
skewY()La méthode skewY() incline un élément le long de l'axe Y selon l'angle donné.
L'exemple suivant incline l'élément <div> de 20 degrés le long de l'axe Y :
div
{
transform: skewY(20deg);
}Essayez-le vous-même →
<!DOCTYPE html>
<html>
<head>
<style>
div {
width: 300px;
height: 100px;
background-color: yellow;
border: 1px solid black;
}
div#myDiv {
transform: skewY(20deg);
}
</style>
</head>
<body>
<h1>The skewY() Method</h1>
<p>The skewY() method skews an element along the Y-axis by the given angle.</p>
<div>
This a normal div element.
</div>
<div id="myDiv">
This div element is skewed 20 degrees along the Y-axis.
</div>
</body>
</html>
skew()La méthode skew() incline un élément le long des axes X et Y selon les angles donnés.
L'exemple suivant incline l'élément <div> de 20 degrés le long de l'axe X et de 10 degrés le long de l'axe Y :
div
{
transform: skew(20deg, 10deg);
}Essayez-le vous-même →
<!DOCTYPE html>
<html>
<head>
<style>
div {
width: 300px;
height: 100px;
background-color: yellow;
border: 1px solid black;
}
div#myDiv {
transform: skew(20deg,10deg);
}
</style>
</head>
<body>
<h1>The skew() Method</h1>
<p>The skew() method skews an element into a given angle.</p>
<div>
This a normal div element.
</div>
<div id="myDiv">
This div element is skewed 20 degrees along the X-axis, and 10 degrees along the Y-axis.
</div>
</body>
</html>
Si le deuxième paramètre n'est pas spécifié, il a une valeur nulle. Ainsi, l’exemple suivant incline l’élément <div> de 20 degrés le long de l’axe X :
div
{
transform: skew(20deg);
}Essayez-le vous-même →
<!DOCTYPE html>
<html>
<head>
<style>
div {
width: 300px;
height: 100px;
background-color: yellow;
border: 1px solid black;
}
div#myDiv {
transform: skew(20deg);
}
</style>
</head>
<body>
<h1>The skew() Method</h1>
<p>The skew() method skews an element into a given angle.</p>
<div>
This a normal div element.
</div>
<div id="myDiv">
This div element is skewed 20 degrees along the X-axis.
</div>
</body>
</html>
matrix()La méthode matrix() combine toutes les méthodes de transformation 2D en une seule.
La méthode matrice() prend six paramètres, contenant des fonctions mathématiques, qui vous permet de faire pivoter, redimensionner, déplacer (traduire) et incliner les éléments.
Les paramètres sont les suivants : Matrix(scaleX(), skewY(), skewX(), scaleY(), TranslateX(), TranslateY()).
div
{
transform: matrix(1, -0.3, 0, 1, 0, 0);
}Essayez-le vous-même →
<!DOCTYPE html>
<html>
<head>
<style>
div {
width: 300px;
height: 100px;
background-color: yellow;
border: 1px solid black;
}
div#myDiv1 {
transform: matrix(1, -0.3, 0, 1, 0, 0);
}
div#myDiv2 {
transform: matrix(1, 0, 0.5, 1, 150, 0);
}
</style>
</head>
<body>
<h1>The matrix() Method</h1>
<p>The matrix() method combines all the 2D transform methods into one.</p>
<div>
This a normal div element.
</div>
<div id="myDiv1">
Using the matrix() method.
</div>
<div id="myDiv2">
Another use of the matrix() method.
</div>
</body>
</html>
Le tableau suivant répertorie toutes les propriétés de transformation 2D :
Applique une transformation 2D ou 3D à un élément
Permet de changer la position sur les éléments transformés
Définit une transformation 2D, en utilisant une matrice de six valeurs
Définit une translation 2D, déplaçant l'élément le long des axes X et Y
Définit une translation 2D, déplaçant l'élément le long de l'axe X
Définit une translation 2D, déplaçant l'élément le long de l'axe Y
Définit une transformation d'échelle 2D, en modifiant la largeur et la hauteur des éléments
Définit une transformation d'échelle 2D, modifiant la largeur de l'élément
Définit une transformation d'échelle 2D, modifiant la hauteur de l'élément
Définit une rotation 2D, l'angle est précisé dans le paramètre
Définit une transformation d'inclinaison 2D le long des axes X et Y
Définit une transformation d'inclinaison 2D le long de l'axe X
Définit une transformation d'inclinaison 2D le long de l'axe Y