Mise en page, peinture et composition : la chaîne de rendu
Comprenez la chaîne de mise en page, de peinture et de composition du navigateur afin de prévoir le coût des changements de style.
Mise en page, peinture et composition : la chaîne de rendu est une leçon CSS Academy gratuite sur CoddyKit. Ceci est la leçon 2 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage CSS Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours CSS Academy comprend 4 leçons au total.
Les trois étapes du rendu
Une fois l’arbre de rendu construit, le navigateur exécute trois étapes : la mise en page (calcul des dimensions et des positions des éléments), la peinture (remplissage des pixels avec des couleurs, du texte et des images) et la composition (combinaison des calques peints et affichage à l’écran).
Mise en page (redistribution)
La mise en page calcule la géométrie — largeur, hauteur et position x/y — de chaque élément. Modifier des propriétés qui affectent la géométrie (width, margin, padding, font-size, position) déclenche la mise en page de l’élément et potentiellement de tout son sous-arbre : c’est l’étape la plus coûteuse.
Peinture
La peinture remplit les pixels de chaque calque : arrière-plans, bordures, texte et ombres. Modifier color, background-color, visibility ou border-radius déclenche une nouvelle peinture sans recalcul de la mise en page : c’est moins coûteux que la mise en page, mais cela reste onéreux si une grande zone doit être repeinte.
Composition
Le compositeur combine les calques à l’aide du GPU. Les propriétés CSS qui n’affectent que la composition — transform et opacity — peuvent être animées sans déclencher de mise en page ni de peinture. Le GPU les traite à 60fps avec une intervention minimale du CPU.
Référence des déclencheurs CSS
csstriggers.com (désormais une documentation côté navigateur) indique, pour chaque moteur de navigateur, quelles propriétés CSS déclenchent la mise en page, la peinture et/ou la composition. Utilisez-le pour vérifier les propriétés d’animation. Préférez transform et opacity pour les propriétés animées.
Surcharge de la mise en page
La surcharge de la mise en page se produit lorsque JavaScript alterne entre la lecture de propriétés de mise en page (offsetWidth) et l’écriture de propriétés de style dans une boucle. Chaque écriture invalide la mise en page ; chaque lecture force une redistribution synchrone. Regroupez toutes les lectures avant toutes les écritures pour éviter cette surcharge.
<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>Propriétés gérées uniquement par la composition
Seuls transform et opacity sont entièrement gérés par le compositeur lorsque l’élément se trouve sur son propre calque. Animer toute autre propriété, même left/top, déclenche la mise en page ou la peinture sur le fil d’exécution principal et peut provoquer des saccades.
Création de calques GPU
Les navigateurs placent les éléments sur leur propre calque GPU lorsqu’ils utilisent will-change: transform, une animation CSS sur transform/opacity, une position fixe avec des éléments voisins composités ou une transformation 3D. Chaque calque utilise de la mémoire GPU ; un trop grand nombre de calques entraîne une pression sur la mémoire.
Éviter les tempêtes de peinture
Une tempête de peinture se produit lorsqu’une grande partie de la page est repeinte à chaque image. Effectuez un profilage dans Chrome DevTools → Rendu → Clignotement des peintures pour repérer les zones repeintes. Isolez les éléments fréquemment animés sur leurs propres calques afin de limiter la zone de repeinture.
Panneau Performances de DevTools
Enregistrez un profil de performances dans Chrome DevTools. Le graphique en flammes affiche les événements de mise en page, de mise à jour de l’arbre des calques, de peinture et de composition. De longues barres de mise en page ou de peinture indiquent des goulots d’étranglement. Visez des durées d’image inférieures à 16 ms pour maintenir 60 images/s.
Consignes pratiques pour les animations
Animez la transformation et l’opacité autant que possible. Utilisez le découpage au lieu de la largeur et de la hauteur pour les animations de révélation — le découpage est favorable au compositeur dans les navigateurs modernes. Évitez d’animer l’ombre portée ; utilisez plutôt l’opacité et un pseudo-élément avec une ombre pré-rendue.
Vérification des connaissances
Quelles sont les deux propriétés CSS qui peuvent être animées sans déclencher de mise en page ni de peinture ?
Résumé
La chaîne de rendu — mise en page, peinture, composition — détermine les performances des animations. La mise en page est la plus coûteuse, la peinture a un coût modéré et les propriétés limitées à la composition (transformation, opacité) sont gérées par le GPU. Comprendre les déclencheurs permet de créer des animations fluides à 60 images/s sans recalculs incessants de la mise en page ni tempêtes de peinture.
Questions Fréquemment Posées
La leçon « Mise en page, peinture et composition : la chaîne de rendu » est-elle gratuite ?
Oui — le texte complet de « Mise en page, peinture et composition : la chaîne de rendu » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours CSS Academy, passe à CoddyKit PRO. Le cours CSS Academy comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « Mise en page, peinture et composition : la chaîne de rendu » ?
Comprenez la chaîne de mise en page, de peinture et de composition du navigateur afin de prévoir le coût des changements de style. Tu pratiques CSS Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer CSS Academy ?
Aucune expérience préalable n'est requise. CSS Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 2 sur 4.
Combien de temps prend la leçon « Mise en page, peinture et composition : la chaîne de rendu » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon CSS Academy ?
Oui. Chaque leçon CSS Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- CSS critique et blocage du rendu
- Mise en page, peinture et composition : la chaîne de rendu
- will-change et promotion des couches
- Couverture CSS et styles inutilisés