rotate3d()

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 rotate3d() CSS Funktion definiert eine Transformation, die ein Element in einem festen Punkt im 3D-Raum dreht, ohne es zu verformen. Das Ergebnis ist ein <transform-function> Datentyp.

Probieren Sie es aus

Im 3D-Raum haben Rotationen drei Freiheitsgrade, die zusammen eine einzige Rotationsachse beschreiben. Die Rotationsachse wird durch einen [x, y, z] Vektor definiert und verläuft durch den Ursprung (wie durch die transform-origin Eigenschaft definiert). Wenn der Vektor, wie angegeben, nicht normalisiert ist (d. h., wenn die Summe der Quadrate seiner drei Koordinaten nicht 1 ist), wird der Benutzeragent ihn intern normalisieren. Ein nicht normalisierbarer Vektor, wie der Nullvektor [0, 0, 0], führt dazu, dass die Rotation ignoriert wird, ohne die gesamte CSS-Eigenschaft ungültig zu machen.

Hinweis: Anders als bei Rotationen in der 2D-Ebene ist die Zusammensetzung von 3D-Rotationen in der Regel nicht kommutativ. Mit anderen Worten, die Reihenfolge, in der die Rotationen angewendet werden, beeinflusst das Ergebnis.

Syntax

Der durch rotate3d() erzeugte Rotationsbetrag wird durch drei <number>s und einen <angle> angegeben. Die <number>n repräsentieren die x-, y- und z-Koordinaten des Vektors, der die Rotationsachse angibt. Der <angle> repräsentiert den Rotationswinkel; bei einem positiven Winkel erfolgt die Bewegung im Uhrzeigersinn, bei einem negativen gegen den Uhrzeigersinn.

css
rotate3d(x, y, z, a)

Werte

x

Ist eine <number> und beschreibt die x-Koordinate des Vektors, der die Rotationsachse angibt, und kann eine positive oder negative Zahl sein.

y

Ist eine <number> und beschreibt die y-Koordinate des Vektors, der die Rotationsachse angibt, und kann eine positive oder negative Zahl sein.

z

Ist eine <number> und beschreibt die z-Koordinate des Vektors, der die Rotationsachse angibt, und kann eine positive oder negative Zahl sein.

a

Ist ein <angle> und repräsentiert den Winkel der Rotation. Ein positiver Winkel bezeichnet eine Drehung im Uhrzeigersinn, ein negativer Winkel eine gegen den Uhrzeigersinn.

Kartesische Koordinaten auf ℝ^2 Diese Transformation gilt für den 3D-Raum und kann nicht auf der Ebene dargestellt werden.
Homogene Koordinaten auf ℝℙ^2
Kartesische Koordinaten auf ℝ^3
(1+(1cos(a))(x21)zsin(a)+xy(1cos(a))ysin(a)+xz(1cos(a))zsin(a)+xy(1cos(a))1+(1cos(a))(y21)xsin(a)+yz(1cos(a))ysin(a)+xz(1cos(a))xsin(a)+yz(1cos(a))1+(1cos(a))(z21))\begin{pmatrix}1 + (1 - \cos(a))(x^2 - 1) & z\cdot \sin(a) + xy(1 - \cos(a)) & -y\cdot \sin(a) + xz(1 - \cos(a))\\-z\cdot \sin(a) + xy(1 - \cos(a)) & 1 + (1 - \cos(a))(y^2 - 1) & x\cdot \sin(a) + yz(1 - \cos(a))\\y\cdot \sin(a) + xz(1 - \cos(a)) & -x\cdot \sin(a) + yz(1 - \cos(a)) & 1 + (1 - \cos(a))(z^2 - 1)\end{pmatrix}
Homogene Koordinaten auf ℝℙ^3
(1+(1cos(a))(x21)zsin(a)+xy(1cos(a))ysin(a)+xz(1cos(a))0zsin(a)+xy(1cos(a))1+(1cos(a))(y21)xsin(a)+yz(1cos(a))0ysin(a)+xz(1cos(a))xsin(a)+yz(1cos(a))1+(1cos(a))(z21)00001)\begin{pmatrix}1 + (1 - \cos(a))(x^2 - 1) & z\cdot \sin(a) + xy(1 - \cos(a)) & -y\cdot \sin(a) + xz(1 - \cos(a)) & 0\\-z\cdot \sin(a) + xy(1 - \cos(a)) & 1 + (1 - \cos(a))(y^2 - 1) & x\cdot \sin(a) + yz(1 - \cos(a)) & 0\\y\cdot \sin(a) + xz(1 - \cos(a)) & -x\cdot \sin(a) + yz(1 - \cos(a)) & 1 + (1 - \cos(a))(z^2 - 1) & 0\\0 & 0 & 0 & 1\end{pmatrix}

Formale Syntax

<rotate3d()> = 
rotate3d( <number> , <number> , <number> , [ <angle> | <zero> ] )

Beispiele

Drehung auf der y-Achse

HTML

html
<div>Normal</div>
<div class="rotated">Rotated</div>

CSS

css
body {
  perspective: 800px;
}

div {
  width: 80px;
  height: 80px;
  background-color: skyblue;
}

.rotated {
  transform: rotate3d(0, 1, 0, 60deg);
  background-color: pink;
}

Ergebnis

Drehung um eine benutzerdefinierte Achse

HTML

html
<div>Normal</div>
<div class="rotated">Rotated</div>

CSS

css
body {
  perspective: 800px;
}

div {
  width: 80px;
  height: 80px;
  background-color: skyblue;
}

.rotated {
  transform: rotate3d(1, 2, -1, 192deg);
  background-color: pink;
}

Ergebnis

Spezifikationen

Specification
CSS Transforms Module Level 2
# funcdef-rotate3d

Browser-Kompatibilität

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
rotate3d()

Legend

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

Full support
Full support

Siehe auch