mitmario.dev

transform 3D

3D-Transformationen erweitern die 2D-Welt um eine Tiefenachse (Z-Achse). Mit perspective erzeugst du eine räumliche Tiefenwirkung, sodass nähere Elemente größer und entferntere kleiner erscheinen. Funktionen wie rotateX(), rotateY() und translateZ() bewegen Elemente im dreidimensionalen Raum. transform-style: preserve-3d sorgt dafür, dass Kind-Elemente ihre eigene 3D-Position behalten statt flachgedrückt zu werden. backface-visibility bestimmt, ob die Rückseite eines gedrehten Elements sichtbar ist, unverzichtbar für Card-Flip-Effekte.

Steckbrief transform 3D
Syntax
perspective: <länge> | none
Initialwert
none
Vererbt
Nein
Animierbar
Ja
Kategorie
Transformationen
Werte
16
Beispiele
5
Browser
5 von 5
E-Mail
0 von 5
Stand
15.02.2026

Grundlagen

Für 3D-Effekte brauchst du perspective auf dem Container. Ohne Perspektive sehen Rotationen um die X- oder Y-Achse nur wie eine Stauchung aus, weil der Browser keine Tiefenberechnung durchführt. Die Perspektive definiert den Abstand des Betrachters zur Z=0 Ebene: kleine Werte (300 bis 500px) erzeugen einen dramatischen Fluchtpunkt-Effekt, große Werte (800 bis 1200px) wirken subtiler und natürlicher.

transform-style: preserve-3d auf einem Container bewahrt die 3D-Positionierung der Kinder. Ohne diesen Wert werden Kind-Elemente auf die 2D-Ebene des Eltern-Elements projiziert: sie verlieren ihre Tiefe. Das ist entscheidend, wenn du verschachtelte 3D-Szenen baust oder einen Card-Flip mit Vorder- und Rückseite erstellen willst.

backface-visibility: hidden versteckt die Rückseite eines Elements, wenn es um mehr als 90° gedreht ist. Standardmäßig ist die Rückseite sichtbar (als gespiegeltes Bild). Für Card-Flips legst du zwei Elemente übereinander, drehst die Rückseite um 180° und versteckst die jeweilige Rückseite, beim Drehen wird so immer nur eine Seite sichtbar.

Syntax & Werte

16 Werte

perspective

Wert Beschreibung Beispiel
none Keine Perspektive. 3D-Rotationen werden flach dargestellt. (Standard) perspective: none;
<länge> Abstand des Betrachters. Kleinere Werte = stärkerer 3D-Effekt. perspective: 800px;

perspective-origin

Wert Beschreibung Beispiel
50% 50% Fluchtpunkt in der Mitte des Containers. (Standard) perspective-origin: 50% 50%;
<x> <y> Position des Fluchtpunkts. Schlüsselwörter (top, left, center) oder Längen/Prozente. perspective-origin: left top;

transform-style

Wert Beschreibung Beispiel
flat Kind-Elemente werden auf die Ebene des Eltern-Elements projiziert. (Standard) transform-style: flat;
preserve-3d Kind-Elemente behalten ihre eigene 3D-Position im Raum. transform-style: preserve-3d;

backface-visibility

Wert Beschreibung Beispiel
visible Rückseite ist sichtbar (gespiegelt). (Standard) backface-visibility: visible;
hidden Rückseite wird ausgeblendet, wenn das Element um mehr als 90° gedreht ist. backface-visibility: hidden;

3D-Transformationsfunktionen

Wert Beschreibung Beispiel
rotateX(winkel) Dreht um die horizontale Achse. Positive Werte kippen die Oberkante nach hinten. transform: rotateX(45deg);
rotateY(winkel) Dreht um die vertikale Achse. Positive Werte kippen die rechte Seite nach hinten. transform: rotateY(45deg);
rotateZ(winkel) Dreht um die Z-Achse (identisch mit rotate()). transform: rotateZ(45deg);
rotate3d(x, y, z, winkel) Dreht um eine beliebige Achse, definiert durch den Vektor (x, y, z). transform: rotate3d(1, 1, 0, 45deg);
translateZ(z) Verschiebt entlang der Z-Achse. Positive Werte kommen näher zum Betrachter. transform: translateZ(50px);
translate3d(x, y, z) Verschiebt in alle drei Dimensionen gleichzeitig. transform: translate3d(10px, 20px, 50px);
scaleZ(faktor) Skaliert entlang der Z-Achse. Nur sichtbar in Kombination mit 3D-Rotationen. transform: scaleZ(2);
scale3d(x, y, z) Skaliert in alle drei Dimensionen. transform: scale3d(1, 1, 2);

Beispiele

5 Beispiele

Die Perspektive bestimmt die Stärke des 3D-Effekts. Kleine Werte erzeugen dramatische Verzerrungen, große Werte wirken subtiler.

Perspective-Vergleich (alle rotateY 40deg)
.container-1 { perspective: 300px; }  /* Dramatisch */
.container-2 { perspective: 600px; }  /* Mittel */
.container-3 { perspective: 1200px; } /* Subtil */

.box {
  transform: rotateY(40deg);
}

Barrierefreiheit

3D-Transformationen können bei Nutzern mit vestibulären Störungen Schwindel und Übelkeit auslösen, besonders rotierende Animationen und Parallax-Effekte mit Perspektive. Respektiere prefers-reduced-motion:

@media (prefers-reduced-motion: reduce) {
  .cube {
    animation: none;
  }
  .flip-inner {
    transition: none;
  }
}

Card-Flip-Effekte können problematisch sein, wenn wichtige Informationen nur auf der Rückseite stehen. Screenreader lesen beide Seiten vor, aber der Nutzer weiß nicht, dass visuell nur eine Seite sichtbar ist. Stelle sicher, dass alle relevanten Inhalte auch ohne Interaktion zugänglich sind, zum Beispiel mit aria-label oder indem die Rückseiten-Informationen im DOM an der richtigen Stelle stehen.

Elemente, die sich durch translateZ dem Nutzer nähern, sollten nicht zu nah kommen: extreme Perspektiv-Effekte können desorientierend wirken und die Lesbarkeit verschlechtern.

Häufige Fehler

5 Punkte
  • perspective direkt auf dem transformierten Element setzen statt auf dem Container. perspective gehört auf das Eltern-Element, das die 3D-Szene enthält. Alternativ kannst du perspective() als Transformationsfunktion verwenden: transform: perspective(600px) rotateY(45deg), aber dann gilt die Perspektive individuell pro Element.
  • transform-style: preserve-3d vergessen. Ohne diesen Wert werden Kind-Elemente auf die 2D-Ebene des Eltern-Elements projiziert und translateZ hat keinen sichtbaren Effekt.
  • overflow: hidden auf einem preserve-3d-Container setzen. overflow: hidden erzwingt transform-style: flat in den meisten Browsern und zerstört den 3D-Kontext.
  • backface-visibility: hidden nur auf einer Seite der Flip-Card setzen. Beide Seiten (Vorder- und Rückseite) brauchen backface-visibility: hidden, sonst scheint eine Seite durch.
  • Zu kleine perspective-Werte (unter 200px) verwenden. Das erzeugt extreme Verzerrungen, die die Lesbarkeit stark beeinträchtigen.

Browser-Kompatibilität

5 von 5

3D-Transformationen, perspective und backface-visibility werden von allen modernen Browsern vollständig unterstützt.

  • Chrome

    Komplett

  • Firefox

    Komplett

  • Safari

    Komplett

  • Edge

    Komplett

  • Opera

    Komplett

Email-Kompatibilität

0 von 5

3D-Transformationen funktionieren in HTML-Emails praktisch nicht. Selbst Apple Mail hat Einschränkungen bei preserve-3d.

  • Apple Mail

    Teilweise

    Grundlegende 3D-Transforms, aber preserve-3d unzuverlässig

  • Gmail

    Keine

    Alle transform-Properties werden entfernt

  • Outlook

    Keine

    Kein Support für CSS-Transformationen

  • Thunderbird

    Teilweise

    Grundlegende Unterstützung

  • Yahoo Mail

    Keine

    transform wird ignoriert

Newsletter

einmal die Woche, kostenlos

Neue Artikel und Videos, was sich auf der Lernplattform tut, und ab und zu ein Sonderpreis zum Kursstart. Kurz genug, dass du es auch liest.

Zuletzt verschickt · KW 40

Einmal alles neu, und die Lernplattform ist da

Danach kommt eine Mail mit Bestätigungslink, erst dann bist du eingetragen. Abmelden geht unten in jeder Ausgabe. Mehr dazu in der Datenschutzerklärung.