Recherche…


Syntaxe

  • Rotation Transformer
  • transformer: tourner (<angle>)
  • Traduire Transformer
  • transformer: translate (<longueur ou pourcentage> [, <longueur ou pourcentage>]?)
  • transformer: translateX (<longueur ou pourcentage>)
  • transformer: translateY (<longueur ou pourcentage>)
  • Transformer en biais
  • transform: skew (<angle> [, <angle>]?)
  • transformer: skewX (<angle>)
  • transformer: skewY (<angle>)
  • Transformation d'échelle
  • transform: scale (<facteur d'échelle> [, <facteur d'échelle>]?)
  • transformer: scaleX (<facteur d'échelle>)
  • transformer: scaleY (<facteur d'échelle>)
  • Transformation de la matrice
  • transform: matrix (<nombre> [, <nombre>] {5,5})

Paramètres

Fonction / Paramètre Détails
rotate(x) Définit une transformation qui déplace l'élément autour d'un point fixe sur l'axe Z
translate(x,y) Déplace la position de l'élément sur les axes X et Y
translateX(x) Déplace la position de l'élément sur l'axe X
translateY(y) Déplace la position de l'élément sur l'axe Y
scale(x,y) Modifie la taille de l'élément sur les axes X et Y
scaleX(x) Modifie la taille de l'élément sur l'axe X
scaleY(y) Modifie la taille de l'élément sur l'axe Y
skew(x,y) Mappage par cisaillement, ou transvection, déformant chaque point d'un élément d'un certain angle dans chaque direction
skewX(x) Cartographie horizontale du cisaillement déformant chaque point d'un élément d'un certain angle dans la direction horizontale
skewY(y) Cartographie verticale du cisaillement déformant chaque point d'un élément d'un certain angle dans la direction verticale
matrix() Définit une transformation 2D sous la forme d'une matrice de transformation.
angle L'angle selon lequel l'élément doit être pivoté ou incliné (en fonction de la fonction avec laquelle il est utilisé). L'angle peut être fourni en degrés ( deg ), gradiens ( grad ), radians ( rad ) ou tours ( turn ). Dans la fonction skew() , le deuxième angle est facultatif. S'il n'est pas fourni, il n'y aura pas (0) d'inclinaison dans l'axe Y.
longueur ou pourcentage La distance exprimée en longueur ou en pourcentage par laquelle l'élément doit être traduit. Dans la fonction translate() , la deuxième longueur ou pourcentage est facultative. S'il n'est pas fourni, il n'y aurait pas de traduction (0) en ordonnée.
facteur d'échelle Un nombre qui définit combien de fois l'élément doit être mis à l'échelle dans l'axe spécifié. Dans la fonction scale() , le deuxième facteur d'échelle est facultatif. S'il n'est pas fourni, le premier facteur d'échelle sera également appliqué pour l'axe Y.

Remarques

Système de coordonnées 2D

Les transformations sont réalisées selon un système de coordonnées 2D X / Y. L'axe des X va de droite à gauche et l'axe des Y descend vers le bas, comme le montre l'image suivante:

Système de coordonnées CSS 2D

Donc, un translateY() positif translateY() descend et un translateX() positif translateX() va bien.

Support du navigateur et préfixes

  • IE prend en charge cette propriété depuis IE9 avec le préfixe -ms- . Les anciennes versions et Edge n'ont pas besoin du préfixe
  • Firefox le supporte depuis la version 3.5 et nécessite le préfixe -moz- jusqu'à la version 15
  • Chrome depuis la version 4 et jusqu'à la version 34 nécessite le préfixe -webkit-
  • Safari a besoin du préfixe -webkit- jusqu'à la version 8
  • Opera a besoin du préfixe -o- pour la version 11.5 et du préfixe -webkit- de la version 15 à 22
  • Android a besoin du préfixe -webkit- de la version 2.1 à la version 4.4.4

Exemple de transformation préfixée:

-webkit-transform: rotate(45deg);
    -ms-transform: rotate(45deg);
        transform: rotate(45deg);

Tourner

HTML

<div class="rotate"></div>

CSS

.rotate {
    width: 100px;
    height: 100px;
    background: teal;
    transform: rotate(45deg);
}

Cet exemple fera pivoter le div de 45 degrés dans le sens des aiguilles d'une montre. Le centre de rotation se trouve au centre du div, à 50% de la gauche et à 50% du haut. Vous pouvez modifier le centre de rotation en définissant la propriété d' transform-origin .

transform-origin: 100% 50%;

L'exemple ci-dessus définira le centre de rotation au milieu de l'extrémité droite.

Échelle

HTML

<div class="scale"></div>

CSS

.scale {
    width: 100px;
    height: 100px;
    background: teal;
    transform: scale(0.5, 1.3);
}

Cet exemple mettra à l'échelle le div sur 100px * 0.5 = 50px sur l'axe des abscisses et sur 100px * 1.3 = 130px sur l'axe des 100px * 1.3 = 130px .

Le centre de la transformation se situe au centre du div, à 50% de la gauche et à 50% du haut.

Traduire

HTML

<div class="translate"></div>

CSS

.translate {
    width: 100px;
    height: 100px;
    background: teal;
    transform: translate(200px, 50%);
}

Cet exemple déplace le div de 200px sur l'axe des x et de 100px * 50% = 50px sur l'axe des y.

Vous pouvez également spécifier des traductions sur un seul axe.

Sur l'axe des X:

.translate {
    transform: translateX(200px);
}

Sur l'axe des Y:

.translate {
    transform: translateY(50%);
}

Fausser

HTML

<div class="skew"></div>

CSS

.skew {
    width: 100px;
    height: 100px;
    background: teal;
    transform: skew(20deg, -30deg);
}

Cet exemple incline le div de 20 degrés sur l’axe des X et de - 30 degrés sur l’axe des Y.
Le centre de la transformation se situe au centre du div, à 50% de la gauche et à 50% du haut.

Voir le résultat ici .

Transformations multiples

Plusieurs transformations peuvent être appliquées à un élément d'une propriété comme ceci:

transform: rotate(15deg) translateX(200px);

Cela fera pivoter l'élément de 15 degrés dans le sens des aiguilles d'une montre et le traduira ensuite à 200px vers la droite.

Dans les transformations chaînées, le système de coordonnées se déplace avec l'élément . Cela signifie que la traduction ne sera pas horizontale, mais que sur un axe, pivotez de 15 degrés dans le sens des aiguilles d'une montre, comme indiqué dans l'image suivante:

Plusieurs transformations tournent puis traduisent

Changer l'ordre des transformations changera la sortie. Le premier exemple sera différent de

transform: translateX(200px) rotate(15deg);
<div class="transform"></div>
.transform {
  transform: rotate(15deg) translateX(200px);
}

Comme montré dans cette image:

Plusieurs transformations traduisent puis pivotent

Transformer l'origine

Les transformations sont effectuées par rapport à un point défini par la propriété transform-origin .

La propriété prend 2 valeurs: transform-origin: XY;

Dans l'exemple suivant, la première div ( .tl ) est .tl dans le coin supérieur gauche avec l' transform-origin: 0 0; et le second ( .tr ) est transformé autour de son coin supérieur droit avec l’ transform-origin: 100% 0 . La rotation est appliquée en vol stationnaire :

HTML:

<div class="transform originl"></div>
<div class="transform origin2"></div>

CSS:

.transform {
    display: inline-block;
    width: 200px;
    height: 100px;
    background: teal;
    transition: transform 1s;
}

.origin1 {
    transform-origin: 0 0;
}

.origin2 {
    transform-origin: 100% 0;
}

.transform:hover {
    transform: rotate(30deg);
}

La valeur par défaut de la propriété d'origine de transformation est 50% 50% ce qui correspond au centre de l'élément.



Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow