====== LU13a - CSS Transitions (Wiederholung) ====== {{ :de:modul:m291:learningunits:lu13:theorie:transition_cards.gif?nolink | Transition Cards}} CSS Transitions kennen Sie bereits aus früheren Lerneinheiten. Diese Seite fasst das Wichtigste zusammen. ===== Was ist eine Transition? ===== Eine Transition animiert den Wechsel einer CSS-Eigenschaft von einem Zustand in einen anderen. Sie benötigt immer einen **Auslöser** – zum Beispiel einen Hover-Effekt oder das Hinzufügen einer CSS-Klasse per JavaScript. .panel { height: 0; opacity: 0; overflow: hidden; transition: all 300ms ease-in; } .panel.open { height: auto; opacity: 1; } Sobald die Klasse ''open'' per JavaScript hinzugefügt oder entfernt wird, animiert der Browser den Übergang automatisch. ===== Die transition-Eigenschaft ===== ^ Eigenschaft ^ Beispielwert ^ Bedeutung ^ | ''transition-property'' | ''all'', ''opacity'', ''transform'' | Welche Eigenschaft animiert wird | | ''transition-duration'' | ''300ms'', ''0.5s'' | Wie lange die Animation dauert | | ''transition-timing-function'' | ''ease'', ''ease-in'', ''ease-out'', ''linear'' | Beschleunigungskurve | | ''transition-delay'' | ''0s'', ''0.1s'' | Verzögerung vor dem Start | Kurzschreibweise: /* transition: Eigenschaft Dauer Easing Delay */ transition: opacity 300ms ease-in 0s; /* Mehrere Eigenschaften mit Komma trennen */ transition: opacity 300ms ease, transform 300ms ease; /* all animiert alle veränderten Eigenschaften gleichzeitig */ transition: all 300ms ease-in; ===== height: auto animieren ===== CSS kann normalerweise **nicht** von einer fixen Höhe zu ''height: auto'' animieren, weil ''auto'' kein numerischer Wert ist. Mit einer zusätzlichen CSS-Zeile auf '':root'' können wir heute korrekt animieren: /* In main.css, einmalig für das gesamte Projekt */ :root { interpolate-size: allow-keywords; } Danach funktioniert die Transition auf ''height: auto'' in modernen Browsern direkt: .description { height: 0; overflow: hidden; transition: height 300ms ease; } .description.sichtbar { height: auto; /* jetzt animierbar! */ } ===== Transition vs. @keyframes ===== ^ ^ CSS Transition ^ CSS @keyframes Animation ^ | **Auslöser** | Benötigt einen Zustandswechsel | Läuft eigenständig, kein Auslöser nötig | | **Zustände** | Von einem Zustand zum nächsten | Beliebig viele Zwischenschritte (''0 %'' bis ''100 %'') | | **Wiederholungen** | Nicht vorgesehen | ''infinite'', ''alternate'', beliebige Wiederholungen | | **Geeignet für** | Hover-Effekte, Auf-/Zuklappen | Ladeanimationen, Einblend-Effekte, Dekorationen | ===== Demo-Seite ===== [[https://css-transitions-animations.vercel.app|{{ :de:modul:m291:learningunits:lu12:theorie:screenshot_2026-05-28_at_04.56.44.png?nolink&800 | Link zur Demo-Seite für Animationen}}]] [[https://css-transitions-animations.vercel.app|Demo-Seite mit Keyframe-Animationen und Transistions]]