translate3d()
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 translate3d() repositionne un élément dans l'espace 3D. Son résultat est de type <transform-function>.
Exemple interactif
transform: translate3d(0, 0, 0);
transform: translate3d(42px, -62px, -135px);
transform: translate3d(-2.7rem, 0, 1rem);
transform: translate3d(5ch, 0.4in, 5em);
<section class="default-example" id="default-example">
<div class="transition-all" id="example-element">
<div class="face front">1</div>
<div class="face back">2</div>
<div class="face right">3</div>
<div class="face left">4</div>
<div class="face top">5</div>
<div class="face bottom">6</div>
</div>
</section>
#default-example {
background: linear-gradient(skyblue, khaki);
perspective: 800px;
perspective-origin: 150% 150%;
}
#example-element {
width: 100px;
height: 100px;
perspective: 550px;
transform-style: preserve-3d;
}
.face {
display: flex;
align-items: center;
justify-content: center;
width: 100%;
height: 100%;
position: absolute;
backface-visibility: inherit;
font-size: 60px;
color: white;
}
.front {
background: rgb(90 90 90 / 0.7);
transform: translateZ(50px);
}
.back {
background: rgb(0 210 0 / 0.7);
transform: rotateY(180deg) translateZ(50px);
}
.right {
background: rgb(210 0 0 / 0.7);
transform: rotateY(90deg) translateZ(50px);
}
.left {
background: rgb(0 0 210 / 0.7);
transform: rotateY(-90deg) translateZ(50px);
}
.top {
background: rgb(210 210 0 / 0.7);
transform: rotateX(90deg) translateZ(50px);
}
.bottom {
background: rgb(210 0 210 / 0.7);
transform: rotateX(-90deg) translateZ(50px);
}
Cette transformation est caractérisée par un vecteur tridimensionnel [tx, ty, tz]. Ses coordonnées définissent de combien l'élément se déplace dans chaque direction.
Syntaxe
translate3d(tx, ty, tz)
Valeurs
tx-
Est une longueur (
<length>) ou un pourcentage (<percentage>) représentant l'abscisse (composante horizontale, x) du vecteur de déplacement [tx, ty, tz]. ty-
Est une longueur (
<length>) ou un pourcentage (<percentage>) représentant l'ordonnée (composante verticale, y) du vecteur de déplacement [tx, ty, tz]. tz-
Est une longueur (
<length>) représentant la composante z du vecteur de déplacement. Elle ne peut pas être une valeur<percentage>; dans ce cas, la propriété contenant la transformation est considérée comme invalide [tx, ty, tz].
| 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.) |
|---|---|---|---|
|
Cette transformation s'applique à l'espace 3D et ne peut pas être représentée sur le plan. |
Un déplacement n'est pas une transformation linéaire dans ℝ^3 et ne peut pas être représenté par une matrice de coordonnées cartésiennes. |
|
|
Syntaxe formelle
<translate3d()> =
translate3d( <length-percentage> , <length-percentage> , <length> )
<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 à : perspective(500px) translateX(10px) */
transform: perspective(500px) translate3d(10px, 0, 0px);
background-color: pink;
}
Résultat
Combiner un déplacement sur l'axe z 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: perspective(500px) translate3d(10px, 0, 100px);
background-color: pink;
}
Résultat
Spécifications
| Specification |
|---|
| CSS Transforms Module Level 2> # funcdef-translate3d> |
Compatibilité des navigateurs
Voir aussi
- La prorpiété
transform - Le type de donnée
<transform-function> - La prorpiété
translate