Inhaltsverzeichnis
CSS Transitionen, Transformationen und Animationen
Diese Dokumentation behandelt die Grundlagen zur Erstellung von reibungslosen Übergängen (Transitions), Formveränderungen (Transforms) und komplexen Keyframe-Animationen mit CSS basierend auf den Unterlagen von Jennifer Robbins[cite: 15].
1. CSS Transitionen (Übergänge)
CSS-Transitionen ermöglichen einen stufenlosen Übergang zwischen zwei Zuständen eines Elements durch automatische Zwischenbildberechnung (Tweening)[cite: 15].
Einzeleigenschaften
- transition-property: Bestimmt die zu ändernde CSS-Eigenschaft (z. B.
background-color,all,none)[cite: 15]. - transition-duration: Gibt die Dauer des Übergangs an (in Sekunden
soder Millisekundenms)[cite: 15]. - transition-timing-function: Steuert den Verlauf und die Beschleunigung der Animation (z. B.
ease,linear,ease-in,ease-out,ease-in-out,cubic-bezier(),steps())[cite: 15]. - transition-delay: Legt eine Verzögerung fest, bevor der Übergang startet[cite: 15].
Kurzschreibweise & Mehrfachübergänge
Mehrere Eigenschaften werden durch Kommas getrennt[cite: 15]. Innerhalb einer Kurzschreibweise muss die Dauer stets vor der Verzögerung stehen[cite: 15].
/* Kurzschreibweise für einzelne Eigenschaft */ .smooth { background-color: mediumblue; transition: background-color 0.3s ease-in-out 0.2s; } /* Mehrere Eigenschaften gleichzeitig */ .multi-smooth { transition: background-color 0.3s ease-out 0.2s, color 2s ease-in, letter-spacing 0.3s ease-out; } /* Alle Eigenschaften vereinheitlichen */ .all-smooth { transition: all 0.2s ease-in-out; }
2. CSS Transformationen (2D & 3D)
Die Eigenschaft transform verändert Form, Größe und Position eines Elements beim Rendering[cite: 15]. Sie lässt sich ideal mit Transitionen kombinieren[cite: 15].
Transformationsfunktionen
- rotate(deg): Dreht das Element um den angegebenen Winkel[cite: 15].
- translate(x, y): Verschiebt das Element auf der X- und Y-Achse[cite: 15].
- scale(x, y) / scaleX() / scaleY(): Skaliert die Größe des Elements anhand eines plattformunabhängigen Faktors[cite: 15].
- skew(x, y) / skewX() / skewY(): Neigt das Element entlang der Achsen um einen Gradwert[cite: 15].
Ursprung & Verknüpfung
- transform-origin: Legt den Dreh- bzw. Transformationspunkt fest (z. B.
center top,100% 100%, Pixelwerte)[cite: 15]. - Mehrere Transformationen: Können hintereinander aufgelistet werden (Achtung: Die Reihenfolge beeinflusst das Ergebnis)[cite: 15].
/* Transformation bei Hover mit weichem Übergang */ img.card { transition: transform 0.3s ease; } img.card:hover { transform: scale(1.1) rotate(-5deg) translate(10px, 5px); }
3D-Transformationen
Für 3D-Effekte wird auf dem Elternelement eine Perspektive (perspective) definiert und auf den Kindelementen eine 3D-Transformation angewendet[cite: 15]:
ul.container { perspective: 600px; /* Niedrigerer Wert = extremere Perspektive */ } ul.container li { transform: rotateX(45deg); }
3. Keyframe-Animationen
Keyframe-Animationen bieten die Möglichkeit, komplexe Übergänge über mehrere Zustände hinweg zu steuern[cite: 15].
Ablauf
1. **Ablauf definieren:** Erstellen der Animation mittels ''@keyframes''-Regel und Namensvergabe[cite: 15]. 2. **Eigenschaften zuweisen:** Anwenden der Animations-Eigenschaften auf das Ziel-Element[cite: 15].
/* 1. Definieren der Keyframe-Sequenz */ @keyframes rainbow { 0% { background-color: red; } 20% { background-color: orange; } 40% { background-color: yellow; } 60% { background-color: green; } 80% { background-color: blue; } 100% { background-color: purple; } } /* 2. Zuweisung zum Element */ #magic { animation-name: rainbow; animation-duration: 5s; animation-timing-function: linear; animation-iteration-count: infinite; animation-direction: alternate; }
4. Übersicht der Steuerungsparameter
| Bereich | Eigenschaft | Beschreibung |
|---|---|---|
| Transition | transition-property | Ziel-Eigenschaften bestimmen[cite: 15] |
transition-duration | Zeitdauer des Übergangs[cite: 15] | |
transition-timing-function | Beschleunigungsprofil (z. B. ease, linear)[cite: 15] |
|
transition-delay | Startverzögerung[cite: 15] | |
| Transform | transform | Ausführen von rotate(), translate(), scale(), skew()[cite: 15] |
transform-origin | Dreh- und Ankerpunkt des Elements festlegen[cite: 15] | |
perspective | 3D-Raumtiefe auf Elternelement aktivieren[cite: 15] | |
| Animation | @keyframes | Regel zur Definition der Zwischenzustände (Prozentangaben)[cite: 15] |
animation-name | Name der zugewiesenen Keyframe-Regel[cite: 15] | |
animation-iteration-count | Anzahl der Durchläufe (z. B. infinite)[cite: 15] |
|
animation-direction | Abspielrichtung (z. B. normal, alternate)[cite: 15] |