scale3d()

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since March 2022.

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

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.

css
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 ℝ2 Coordonnées homogènes sur ℝℙ2 Coordonnées cartésiennes sur ℝ3 Coordonnées homogènes sur ℝℙ3
Cette transformation s'applique dans en 3 dimensions et ne peut pas être représentée sur le plan. sx000sy000sz sx0000sy0000sz00001

Exemples

Avec origine non modifiée

HTML

html
<div>Normal</div>
<div class="scaled">Mis à l'échelle</div>

CSS

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

html
<div>Normal</div>
<div class="scaled">Mis à l'échelle</div>

CSS

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

Report problems with this compatibility data on GitHub
desktopmobile
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
scale3d()

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support

Voir aussi