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 vergrößert. Da die Skalierung durch einen Vektor [sx, sy, sz] definiert ist, kann sie verschiedene Dimensionen in unterschiedlichen Maßstäben vergrößern. Ihr Ergebnis ist ein <transform-function>
Datentyp.
Probieren Sie es aus
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);
}
Diese Skalierungstransformation wird durch einen dreidimensionalen Vektor charakterisiert. Dessen Koordinaten definieren, wie viel Skalierung in jeder Richtung vorgenommen wird. 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; wenn sie innerhalb liegen, schrumpft es. Wenn der Wert negativ ist, führt dies zu einer Punktspiegelung in dieser Dimension. Ein Wert von 1 hat keinen Effekt.
Syntax
Die scale3d()
Funktion wird mit drei Werten angegeben, die die zu verwendende Skalierung in jeder Richtung repräsentieren.
scale3d(sx, sy, sz)
Werte
sx
-
Ist eine
<number>
, die die Abszisse (horizontal, x-Komponente) des Skalierungsvektors darstellt. sy
-
Ist eine
<number>
, die die Ordinate (vertikal, y-Komponente) des Skalierungsvektors darstellt. sz
-
Ist eine
<number>
, die die z-Komponente des Skalierungsvektors darstellt.
Kartesische Koordinaten auf ℝ^2 | Homogene Koordinaten auf ℝℙ^2 | Kartesische Koordinaten auf ℝ^3 | Homogene Koordinaten auf ℝℙ^3 |
---|---|---|---|
Diese Transformation wird im 3D-Raum angewandt und kann nicht auf der Ebene dargestellt werden. |
|
|
Formale Syntax
Beispiele
Ohne Änderung des Ursprungs
HTML
<div>Normal</div>
<div class="scaled">Scaled</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;
}
Ergebnis
Übersetzung des Ursprungs der Transformation
HTML
<div>Normal</div>
<div class="scaled">Scaled</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;
}
Ergebnis
Spezifikationen
Specification |
---|
CSS Transforms Module Level 2 # funcdef-scale3d |
Browser-Kompatibilität
BCD tables only load in the browser
Siehe auch
transform
<transform-function>
scaleZ()
translate3d()
rotate3d()
- Individuelle Transformations-Eigenschaften: