La propriété CSS transform() permet de manipuler un élément HTML sur les axes X et Y (horizontal et vertical) grâce à des fonctions diverses de transformation graphique.
Il est donc possible de modifier l'apparence d'un élément grâce à un ensemble fonctions 2D :
Nous verrons les différentes transformations dans cette section.
Il est possible d'utiliser plusieurs transformation à la suite mais ATTENTION à l'ordre dans lequel on les met !!!
Pour utiliser plusieurs transformations à la suite: transform : transform1() transform2();
Les fonctions CSS scale(), scaleX() et scaleY() permettent d'agir sur l'echelle d'un élément. Cela aura pour conséquence un agrandissement ou une réduction de l'élement.
La fonction scale se présente de cette manière : transform : scale(x,y), scaleX(x) ou scaleY(y)
transform : scale(x,y)
:transform : scaleX(x)
:transform : scaleY(y)
:ATTENTION : Tous les éléments peuvent s'aggrandir et/ou se réduire mais attention aux images qui peuvent devenir flous et/ou illisibles !!! Ne pas en abuser !
transform: scale(1.5);
Les fonctions CSS skew(), skewX() et skewY() permettent d'obliquer un élément. Cela aura pour conséquence une distorsion.
La fonction skew() se présente de cette manière : transform : skew(x,y), skewX(x) ou skewY(y);
transform : skew(x,y)
:transform : skewX(x)
:transform : skewY(y)
:ATTENTION : Skew() est en voie de disparition. Seuls skewX() et skewY() seront utilisables.
transform: skew(15deg, 15deg);
La fonction CSS rotate() permet d'effectuer une rotation. Cette rotation déplace l'élément autour d'un point fixe (transform-origin) sans le déformer.
La fonction rotate se présente de cette manière : transform : rotate(x);
transform:rotate(180deg);
Les fonctions CSS translate(), translateX() et translateY() permettent de décaler un élément horizontalement ou verticalement par rapport à sa position d'origine.
La fonction translate se présente de cette manière: transform : translate(x,y),translateX(x) ou translateY(y)
transform : translate(x,y)
:transform : translateX(x)
:transform : translateY(y)
:transform: translate(20px, 20px);
La fonction CSS3 matrix permet d'incliner, de changer l'échelle, de faire une rotation, de décaler un élément HTML en regroupant les élements scale(), skew(), rotate() et translate().
La fonction matrix() se présente de cette manière :transform : matrix(scaleX(),skewY(),skewX(),scaleY(),translateX(),translateY())
rotate() n'est pas présente dans les paramètres de matrix() mais vous pouvez quand même la rajouter aux autres transformations (cf. ci dessous).
ATTENTION ! On ne précise pas d'unité pour les valeurs !
transform: scale(2)
est égal à transform: matrix(2, 0, 0, 2, 0, 0)
transform: translate(20px, 20px)
est égal à transform: matrix(1, 0, 0, 1, 20, 20)
transform: skew(20deg, 20deg)
est égal à transform: matrix(1, 0.36397, 0.36397, 1, 0, 0)
transform: scale(2)
est égal à transform: matrix(2, 0, 0, 2, 0, 0)
transform: scale(2) rotate(45deg)
donnera : transform: matrix(1.41421, 1.41421, -1.41421, 1.41421, 0, 0)
Sur ce site (The Matrix revolution), vous pouvez rentrer vos transformations à la suite et elles se transposent en matrix().
transform: matrix(1.39162, 0.562252, 0.300767, 1.70574, 40, 0);
La fonction CSS transform-origin permet de modifier l'origine du repère.
Elle est associée à une transformation (transform).
La fonction transform-origin se présente de cette manière : transform-origin: x y;
L'origine par défaut est le centre de l'élement (50%,50%).
Lorsque l'on applique transform-origin
, le décalage du point d'origine s'effectuera à partir du bord en haut à gauche de l'élément.
Exemple : transform-origin: 10px;
déplacera le point d'origine de 10 px vers la droite à partir du bord gauche par contre, il n'y a pas de valeur de y de spécifiée donc c'est la valeur par défaut qui est appliquée.
transform: rotate(360deg);
transform: rotate(360deg);
transform-origin: top left;
En cliquant ici, vous pourrez bénéficier d'informations complémentaires pour ces méthodes.
REVENIR EN HAUT DE LA PAGE ↑