Die Karte bleibt weiterhin bedienbar. Lediglich die animierte
Übergangsbewegung wird deaktiviert.
Zusammenfassung der 3D-Transformationen
Grundprinzip der 3D-Darstellung
CSS-3D-Transformationen erweitern die zweidimensionale Darstellung um eine
zusätzliche räumliche Achse. Neben der x- und y-Achse steht deshalb auch die
z-Achse zur Verfügung.
Achse
Richtung
Beispiele
x-Achse
Waagerecht: links und rechts
translateX(),
rotateX()
y-Achse
Senkrecht: oben und unten
translateY(),
rotateY()
z-Achse
Räumlich: zum Betrachter oder vom Betrachter weg
translateZ(),
rotateZ()
Die z-Achse wird erst durch eine Perspektive beziehungsweise eine räumliche
Anordnung sichtbar.
Die wichtigsten CSS-Eigenschaften
Eigenschaft
Beschreibung
Beispiel
perspective
Legt den Abstand zwischen dem Betrachter und der 3D-Szene fest.
perspective: 1000px;
perspective-origin
Bestimmt den Blickpunkt auf die 3D-Szene.
perspective-origin: center top;
transform
Verschiebt, dreht, skaliert oder verzerrt ein Element.
transform: rotateY(45deg);
transform-style
Bestimmt, ob untergeordnete Elemente räumlich angeordnet bleiben.
transform-style: preserve-3d;
transform-origin
Legt den Mittelpunkt einer Transformation fest.
transform-origin: center left;
backface-visibility
Bestimmt, ob die Rückseite eines gedrehten Elements sichtbar ist.
backface-visibility: hidden;
3D-Transformationsfunktionen
Funktion
Wirkung
Beispiel
translateX()
Verschiebt entlang der x-Achse.
translateX(50px)
translateY()
Verschiebt entlang der y-Achse.
translateY(-30px)
translateZ()
Verschiebt zum Betrachter oder vom Betrachter weg.
translateZ(100px)
translate3d()
Verbindet die Verschiebung auf allen drei Achsen.
translate3d(20px, 30px, 100px)
rotateX()
Dreht um die waagerechte x-Achse.
rotateX(45deg)
rotateY()
Dreht um die senkrechte y-Achse.
rotateY(180deg)
rotateZ()
Dreht innerhalb der sichtbaren Fläche um die z-Achse.
rotateZ(30deg)
rotate3d()
Dreht um eine frei definierbare räumliche Achse.
rotate3d(1, 1, 0, 45deg)
scaleX()
Skaliert entlang der x-Achse.
scaleX(1.2)
scaleY()
Skaliert entlang der y-Achse.
scaleY(0.8)
scaleZ()
Skaliert räumliche Abstände entlang der z-Achse.
scaleZ(1.5)
scale3d()
Verbindet die Skalierung auf allen drei Achsen.
scale3d(1.2, 1.2, 1.5)
rotateZ() entspricht optisch meist der bekannten
zweidimensionalen Funktion rotate().
Perspektive richtig einsetzen
Die Eigenschaft perspective wird meistens auf dem übergeordneten
Szenenbereich festgelegt.
Für zusammengehörende 3D-Objekte wie Würfel oder Bildergalerien ist eine
gemeinsame perspective auf dem Szenenbereich meistens besser
geeignet.
Räumliche Unterelemente erhalten
Standardmäßig werden untergeordnete Elemente in die Ebene ihres
übergeordneten Elements projiziert. Mit
transform-style: preserve-3d behalten sie ihre räumlichen
Positionen.
Diese Variante eignet sich für eine durch den Benutzer ausgelöste
Zustandsänderung.
Daueranimation mit @keyframes
.object {
animation:
rotate-object 10s linear infinite;
}
@keyframes rotate-object {
to {
transform: rotateY(360deg);
}
}
Diese Variante eignet sich für automatisch wiederholte Bewegungen.
Animationen barrierearm gestalten
Starke und dauerhafte 3D-Bewegungen können für manche Menschen unangenehm
sein. Die Benutzereinstellung für reduzierte Bewegung sollte deshalb
berücksichtigt werden.
Hält die Bestandteile zusammen und bewahrt ihre räumliche Anordnung.
.object-part
Bildet eine einzelne Fläche oder einen Bestandteil des 3D-Objekts.
Checkliste für eigene 3D-Beispiele
Besitzt der äußere Szenenbereich eine passende
perspective?
Verwendet der gemeinsame Objektcontainer
transform-style: preserve-3d?
Sind die einzelnen Flächen korrekt positioniert und transformiert?
Wurde die Reihenfolge mehrerer Transformationsfunktionen geprüft?
Soll die Rückseite mit
backface-visibility: hidden ausgeblendet werden?
Funktioniert die Darstellung auch auf kleinen Bildschirmen?
Sind interaktive Elemente mit der Tastatur bedienbar?
Wird prefers-reduced-motion berücksichtigt?
Bleiben wichtige Inhalte auch ohne 3D-Effekt verständlich?
Fazit
Mit CSS-3D-Transformationen können Elemente räumlich verschoben, gedreht und
animiert werden. Die wichtigsten Grundlagen bilden
perspective,
transform-style: preserve-3d,
die Transformationsfunktionen und
backface-visibility.
Auf dieser Seite wurden diese Techniken schrittweise erklärt und unter
anderem auf Karten, einen Würfel, eine Bildergalerie und eine interaktive
3D-Karte angewendet.
Damit ist die Lernseite zu den CSS-3D-Transformationen vollständig.