translate()
Baseline
Widely available
Cette fonctionnalité est bien établie et fonctionne sur de nombreux appareils et versions de navigateurs. Elle est disponible sur tous les navigateurs depuis juillet 2015.
La fonction CSS translate() repositionne un élément dans les directions horizontale et/ou verticale. Son résultat est de type <transform-function>.
Exemple interactif
transform: translate(0);
transform: translate(42px, 18px);
transform: translate(-2.1rem, -2ex);
transform: translate(3ch, 3mm);
<section id="default-example">
<img
class="transition-all"
id="static-element"
src="/shared-assets/images/examples/firefox-logo.svg"
width="200" />
<img
class="transition-all"
id="example-element"
src="/shared-assets/images/examples/firefox-logo.svg"
width="200" />
</section>
#static-element {
opacity: 0.4;
position: absolute;
}
#example-element {
position: absolute;
}
Cette transformation est caractérisée par un vecteur bidimensionnel [tx, ty]. Ses coordonnées définissent de combien l'élément se déplace dans chaque direction.
Syntaxe
/* Valeurs simples <length-percentage> */
transform: translate(200px);
transform: translate(50%);
/* Valeurs doubles <length-percentage> */
transform: translate(100px, 200px);
transform: translate(100px, 50%);
transform: translate(30%, 200px);
transform: translate(30%, 50%);
Valeurs
- Valeur simple
<length-percentage> -
Cette valeur est une longueur (
<length>) ou un pourcentage<percentage>représentant l'abscisse (composante horizontale, x) du vecteur de déplacement [tx, 0]. L'ordonnée (composante verticale, y) du vecteur de déplacement sera fixée à0. Par exemple,translate(2px)est équivalent àtranslate(2px, 0). Une valeur en pourcentage fait référence à la largeur de la boîte de référence définie par la propriététransform-box. - Valeur double
<length-percentage> -
Cette valeur décrit deux longueurs (
<length>) ou pourcentages<percentage>représentant à la fois l'abscisse (x) et l'ordonnée (y) du vecteur de déplacement [tx, ty]. Un pourcentage en première position fait référence à la largeur, en seconde à la hauteur de la boîte de référence définie par la propriététransform-box.
| Coordonnées cartésiennes sur ℝ^2 (angl.) | Coordonnées homogènes sur ℝℙ^2 | Coordonnées cartésiennes sur ℝ^3 (angl.) | Coordonnées homogènes sur ℝℙ^3 (angl.) |
|---|---|---|---|
|
Une translation n'est pas une transformation linéaire dans ℝ^2 et ne peut pas être représentée par une matrice de coordonnées cartésiennes. |
|
|
|
[1 0 0 1 tx ty] |
Syntaxe formelle
<translate()> =
translate( <length-percentage> , <length-percentage>? )
<length-percentage> =
<length> |
<percentage>
Exemples
>Utiliser un déplacement sur un seul axe
HTML
<div>Statique</div>
<div class="moved">Déplacé</div>
<div>Statique</div>
CSS
div {
width: 60px;
height: 60px;
background-color: skyblue;
}
.moved {
/* Équivaut à : translateX(10px) ou translate(10px, 0) */
transform: translate(10px);
background-color: pink;
}
Résultat
Combiner un déplacement sur l'axe y et l'axe x
HTML
<div>Statique</div>
<div class="moved">Déplacé</div>
<div>Statique</div>
CSS
div {
width: 60px;
height: 60px;
background-color: skyblue;
}
.moved {
transform: translate(10px, 10px);
background-color: pink;
}
Résultat
Spécifications
| Specification |
|---|
| CSS Transforms Module Level 1> # funcdef-transform-translate> |
Compatibilité des navigateurs
Voir aussi
- La propriété
transform - Le type de donnée
<transform-function> - La propriété
translate