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.

Die scale3d() CSS Funktion definiert eine Transformation, die ein Element im 3D-Raum skaliert. Da der Skalierungsgrad durch einen Vektor [sx, sy, sz] definiert wird, kann sie unterschiedliche Dimensionen in verschiedenen Maßstäben skalieren. Ihr Ergebnis ist ein <transform-function> Datentyp.

Probieren Sie es aus

Diese Skalierungstransformation wird durch einen dreidimensionalen Vektor charakterisiert. Ihre Koordinaten definieren, wie stark die Skalierung in jeder Richtung erfolgt. Wenn alle drei Koordinaten gleich sind, ist die Skalierung gleichmäßig (isotrop) und das Seitenverhältnis des Elements bleibt erhalten (dies ist eine homothetische Transformation).

Wenn ein Koordinatenwert außerhalb des Bereichs [-1, 1] liegt, wächst das Element entlang dieser Dimension; innerhalb schrumpft es. Ist er negativ, ergibt sich eine Punktspiegelung in dieser Dimension. Ein Wert von 1 hat keinen Effekt.

Syntax

Die scale3d() Funktion wird mit drei Werten angegeben, die den Skalierungsgrad in jeder Richtung darstellen.

css
scale3d(sx, sy, sz)

Werte

sx

Ist ein <number>, der die Abszisse (horizontale, x-Komponente) des Skalierungsvektors repräsentiert.

sy

Ist ein <number>, der die Ordinate (vertikale, y-Komponente) des Skalierungsvektors repräsentiert.

sz

Ist ein <number>, der die z-Komponente des Skalierungsvektors darstellt.

Kartesische Koordinaten in ℝ^2 Homogene Koordinaten in ℝℙ^2 Kartesische Koordinaten in ℝ^3 Homogene Koordinaten in ℝℙ^3
Diese Transformation gilt für den 3D-Raum und kann nicht auf der Ebene dargestellt werden.
( sx 0 0 0 sy 0 0 0 sz ) \left( \begin{array}{ccc} sx & 0 & 0 \\ 0 & sy & 0 \\ 0 & 0 & sz \end{array} \right)
( sx 0 0 0 0 sy 0 0 0 0 sz 0 0 0 0 1 ) \left( \begin{array}{cccc} sx & 0 & 0 & 0 \\ 0 & sy & 0 & 0 \\ 0 & 0 & sz & 0 \\ 0 & 0 & 0 & 1 \end{array} \right)

Beispiele

Ohne Veränderung des Ursprungs

HTML

html
<div>Normal</div>
<div class="scaled">Scaled</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;
}

Ergebnis

Verschiebung des Ursprungs der Transformation

HTML

html
<div>Normal</div>
<div class="scaled">Scaled</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;
}

Ergebnis

Spezifikationen

Specification
CSS Transforms Module Level 2
# funcdef-scale3d

Browser-Kompatibilität

BCD tables only load in the browser

Siehe auch