Cette page a été traduite à partir de l'anglais par la communauté. Vous pouvez contribuer en rejoignant la communauté francophone sur MDN Web Docs.
scale3d()
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 scale3d() permet de modifier la taille d'un élément en appliquant une homothétie définie par un vecteur. Les composantes de ce vecteur permettent d'appliquer des échelles différentes selon les différentes dimensions.
Exemple interactif
transform: scale3d(1, 1, 1);
transform: scale3d(1.3, 1.3, 1.3);
transform: scale3d(0.5, 1, 1.7);
transform: scale3d(-1.4, 0.4, 0.7);
<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: rgba(90, 90, 90, 0.7);
transform: translateZ(50px);
}
.back {
background: rgba(0, 210, 0, 0.7);
transform: rotateY(180deg) translateZ(50px);
}
.right {
background: rgba(210, 0, 0, 0.7);
transform: rotateY(90deg) translateZ(50px);
}
.left {
background: rgba(0, 0, 210, 0.7);
transform: rotateY(-90deg) translateZ(50px);
}
.top {
background: rgba(210, 210, 0, 0.7);
transform: rotateX(90deg) translateZ(50px);
}
.bottom {
background: rgba(210, 0, 210, 0.7);
transform: rotateX(-90deg) translateZ(50px);
}
La transformation appliquée est définie par un vecteur dont les coordonnées définissent l'amplitude de l'homothétie dans chaque direction. Si les trois coordonnées du vecteur sont égales, la transformation est isotropique et la forme de l'élément est conservée.
Lorsque les composantes du vecteur sont en dehors de l'intervalle [-1, 1], la transformation agrandit l'élément dans le sens des coordonnées. Lorsque les composantes sont dans cet intervalle, cela réduit l'élément.
Syntaxe
La fonction scale3d() s'utilise avec trois valeurs dont chacune représente l'intensité de la transformation selon chaque direction.
scale3d(sx, sy, sz)
Valeurs
sx-
Une valeur de type
<number>qui représente l'abscisse du vecteur définissant l'homothétie. sy-
Une valeur de type
<number>qui représente l'ordonnée du vecteur définissant l'homothétie sz-
Une valeur de type
<number>qui représente la composante, selon l'axe Z, du vecteur définissant l'homothétie
| Coordonnées cartésiennes sur R2 | Coordonnées homogènes sur RP2 | Coordonnées cartésiennes sur R3 | Coordonnées homogènes sur RP3 |
|---|---|---|---|
| Cette transformation s'applique dans en 3 dimensions et ne peut pas être représentée sur le plan. | |||
Exemples
>Avec origine non modifiée
HTML
<div>Normal</div>
<div class="scaled">Mis à l'échelle</div>
CSS
div {
width: 80px;
height: 80px;
background-color: skyblue;
}
.scaled {
transform: perspective(500px) scale3d(2, 0.7, 0.2) translateZ(100px);
background-color: pink;
}
Résultat
Avec origine translatée
HTML
<div>Normal</div>
<div class="scaled">Mis à l'échelle</div>
CSS
div {
width: 80px;
height: 80px;
background-color: skyblue;
}
.scaled {
transform: perspective(500px) scale3d(2, 0.7, 0.2) translateZ(100px);
transform-origin: left;
background-color: pink;
}
Résultat
Spécifications
| Specification |
|---|
| CSS Transforms Module Level 2> # funcdef-scale3d> |
Compatibilité des navigateurs
Chargement...