Layout, Paint und Composite: Die Rendering-Pipeline
Verstehen Sie die Layout-, Paint- und Composite-Pipeline des Browsers, um die Kosten von Stiländerungen vorherzusagen.
Layout, Paint und Composite: Die Rendering-Pipeline ist eine kostenlose CSS Academy-Lektion auf CoddyKit. Dies ist Lektion 2 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des CSS Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der CSS Academy-Kurs umfasst insgesamt 4 Lektionen.
Die drei Rendering-Phasen
Nachdem der Renderbaum erstellt wurde, durchläuft der Browser drei Phasen: Layout (Berechnung der Größen und Positionen von Elementen), Paint (Füllen der Pixel mit Farben, Text und Bildern) und Compositing (Zusammenführen der gerenderten Ebenen und Anzeigen auf dem Bildschirm).
Layout (Reflow)
Beim Layout wird die Geometrie – Breite, Höhe sowie x/y-Position – für jedes Element berechnet. Änderungen an Eigenschaften, die die Geometrie beeinflussen (width, margin, padding, font-size, position), lösen ein Layout für das Element und möglicherweise seinen gesamten Teilbaum aus – die kostenintensivste Phase.
Paint
Beim Paint werden die Pixel jeder Ebene gefüllt: Hintergründe, Rahmen, Text und Schatten. Änderungen an color, background-color, visibility oder border-radius lösen einen Repaint ohne erneutes Layout aus – das ist günstiger als ein Layout, aber bei großen neu zu zeichnenden Bereichen immer noch kostspielig.
Compositing
Der Compositor führt Ebenen mithilfe der GPU zusammen. CSS-Eigenschaften, die nur das Compositing beeinflussen – transform und opacity –, können animiert werden, ohne Layout oder Paint auszulösen. Die GPU verarbeitet sie mit 60 FPS und minimaler CPU-Beteiligung.
Referenz zu CSS-Triggern
csstriggers.com (heute browserseitige Dokumentation) dokumentiert für jede Browser-Engine, welche CSS-Eigenschaften Layout, Paint und/oder Compositing auslösen. Verwenden Sie die Übersicht, um Animationseigenschaften zu prüfen. Bevorzugen Sie transform und opacity für animierte Eigenschaften.
Layout-Thrashing
Layout-Thrashing tritt auf, wenn JavaScript in einer Schleife zwischen dem Lesen von Layout-Eigenschaften (offsetWidth) und dem Schreiben von Style-Eigenschaften wechselt. Jeder Schreibvorgang macht das Layout ungültig; jeder Lesevorgang erzwingt einen synchronen Reflow. Bündeln Sie alle Lesevorgänge vor allen Schreibvorgängen, um Thrashing zu vermeiden.
<pre class="snippet">// BAD: read-write-read-write loop
elements.forEach(el => { const w = el.offsetWidth; el.style.width = w + 10 + "px"; });
// GOOD: batch reads then writes</pre>Compositor-exklusive Eigenschaften
Nur transform und opacity werden vollständig vom Compositor verarbeitet, wenn sich das Element auf einer eigenen Ebene befindet. Das Animieren jeder anderen Eigenschaft – sogar left/top – löst im Hauptthread ein Layout oder Paint aus und kann zu Ruckeln führen.
Erstellen von GPU-Ebenen
Browser verschieben Elemente auf eine eigene GPU-Ebene, wenn sie will-change: transform, eine CSS-Animation für transform/opacity, eine fixe Position mit Compositing-Nachbarn oder eine 3D-Transformation haben. Jede Ebene verwendet GPU-Speicher – zu viele Ebenen führen zu Speicherdruck.
Paint-Stürme vermeiden
Ein Paint-Sturm tritt auf, wenn in jedem Frame ein großer Teil der Seite neu gezeichnet wird. Erstellen Sie in den Chrome DevTools unter Rendering → Paint flashing ein Profil, um die Bereiche mit Neuzeichnungen zu identifizieren. Isolieren Sie häufig animierte Elemente auf eigenen Ebenen, um den Neuzeichnungsbereich zu begrenzen.
Performance-Panel der DevTools
Zeichnen Sie in den Chrome DevTools ein Performance-Profil auf. Das Flammendiagramm zeigt die Ereignisse Layout, Update Layer Tree, Paint und Composite. Lange Layout- oder Paint-Balken weisen auf Engpässe hin. Streben Sie Frame-Zeiten unter 16 ms an, um 60 fps beizubehalten.
Praktische Animationsrichtlinien
Animieren Sie nach Möglichkeit transform und opacity. Verwenden Sie für Reveal-Animationen clip-path statt width/height – clip-path ist in modernen Browsern für den Compositor geeignet. Vermeiden Sie die Animation von box-shadow. Verwenden Sie stattdessen opacity zusammen mit einem Pseudo-Element, das einen vorab gerenderten Schatten enthält.
Wissensüberprüfung
Welche zwei CSS-Eigenschaften können animiert werden, ohne Layout oder Paint auszulösen?
Zusammenfassung
Die Rendering-Pipeline – Layout, Paint, Composite – bestimmt die Animationsleistung. Layout ist am aufwendigsten, Paint verursacht einen mittleren Aufwand und reine Composite-Eigenschaften (transform, opacity) werden von der GPU verarbeitet. Wenn Sie die Auslöser verstehen, können Sie flüssige Animationen mit 60 fps erstellen, ohne Layout-Thrashing oder Paint-Stürme zu verursachen.
Häufig gestellte Fragen
Ist die Lektion „Layout, Paint und Composite: Die Rendering-Pipeline“ kostenlos?
Ja — der vollständige Text von „Layout, Paint und Composite: Die Rendering-Pipeline“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des CSS Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der CSS Academy-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „Layout, Paint und Composite: Die Rendering-Pipeline“?
Verstehen Sie die Layout-, Paint- und Composite-Pipeline des Browsers, um die Kosten von Stiländerungen vorherzusagen. Du übst CSS Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um CSS Academy zu starten?
Keine Vorkenntnisse erforderlich. CSS Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 2 von 4.
Wie lange dauert die Lektion „Layout, Paint und Composite: Die Rendering-Pipeline“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser CSS Academy-Lektion Code schreiben und ausführen?
Ja. Jede CSS Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- Kritisches CSS und renderblockierende Ressourcen
- Layout, Paint und Composite: Die Rendering-Pipeline
- will-change und Layer-Promotion
- CSS-Abdeckung und ungenutzte Stile