CSS Academy · Leçon

will-change et promotion des couches

Indiquez au navigateur de promouvoir les éléments vers des couches GPU avec will-change pour fluidifier les animations.

Leçon 3 sur 413 étapes

will-change et promotion des couches est une leçon CSS Academy gratuite sur CoddyKit. Ceci est la leçon 3 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.

Qu’est-ce que will-change ?

will-change indique au navigateur qu’un élément sera animé, ce qui lui permet de préparer les optimisations à l’avance — par exemple en promouvant l’élément vers son propre calque de composition du GPU avant le début de l’animation.

Syntaxe

Précisez quelle propriété changera : will-change: transform, will-change: opacity, will-change: transform, opacity. Utilisez will-change: auto pour supprimer les indications à la fin de l’animation.

Quand l’utiliser

Appliquez will-change uniquement aux éléments qui seront réellement animés et seulement pendant la durée de l’animation. L’ajouter et le supprimer avec JavaScript (par l’intermédiaire d’une classe) est plus efficace que de le laisser en permanence sur des éléments statiques.

Coût de la promotion des calques

Chaque calque promu consomme de la mémoire GPU. Promouvoir de nombreux éléments simultanément crée une pression sur la mémoire, ce qui peut dégrader les performances — en particulier sur les appareils mobiles disposant d’une mémoire RAM GPU limitée. Promouvez les éléments avec parcimonie et de manière délibérée.

Éviter l’application généralisée

N’appliquez jamais will-change à * ni à un grand nombre d’éléments. Le coût de l’optimisation dépasse son bénéfice lorsque trop de calques sont créés. Effectuez d’abord un profilage ; ajoutez will-change uniquement lorsqu’un problème précis de saccades est confirmé.

will-change contre une ancienne astuce de promotion GPU

Avant will-change, les développeurs utilisaient transform: translateZ(0) ou translate3d(0,0,0) pour forcer la promotion vers le GPU. will-change est l’approche correcte et sémantique. L’astuce de translation sur l’axe Z fonctionne toujours, mais il s’agit d’un détail d’implémentation, et non de l’expression d’une intention.

Effet secondaire du contexte d’empilement

Les calques promus créent de nouveaux contextes d’empilement. Cela modifie le comportement de l’ordre d’empilement — les enfants d’un élément promu sont empilés par rapport à cet élément, et non à la racine du document. Tenez compte des changements de contexte d’empilement lorsque vous promouvez des éléments.

Schéma d’application dynamique

Ajoutez will-change lors du survol de la souris ou au début d’une animation, puis retirez-le lorsque le pointeur quitte l’élément ou à la fin de l’animation. Le navigateur dispose ainsi de temps pour se préparer sans consommer en permanence de la mémoire GPU pour les éléments inactifs.

  <pre class="snippet">el.addEventListener("mouseenter", () => el.style.willChange = "transform");
el.addEventListener("mouseleave", () => el.style.willChange = "auto");</pre>

Mesurer le nombre de calques

Le panneau Calques de Chrome DevTools visualise les calques promus. Un nombre élevé de calques (des centaines) indique une promotion excessive. La section Mémoire affiche l’utilisation de la mémoire GPU. Maintenez le nombre de calques promus au minimum et surveillez-le avec des profils d’appareils d’entrée de gamme.

Alternative avec la propriété de restriction

CSS contain: layout paint limite les calculs de mise en page et de peinture à un sous-arbre, de manière similaire à l’isolation. Cette propriété améliore les performances des composants autonomes sans créer de calques GPU — une optimisation moins coûteuse que will-change pour les éléments non animés.

Prise en charge et comportement des navigateurs

will-change est entièrement pris en charge par tous les navigateurs modernes. Les navigateurs le traitent comme une indication, et non comme une commande — ils peuvent l’ignorer si les ressources sont limitées. Ne vous y fiez pas comme à une garantie ; utilisez-le uniquement comme indication de performance.

Vérification des connaissances

Quel est le principal risque lié à l’application simultanée de will-change à de nombreux éléments ?

Résumé

will-change promeut les éléments vers des calques de composition du GPU avant les animations, ce qui élimine le coût de promotion au début de l’animation. Appliquez-le dynamiquement et avec parcimonie — uniquement lorsque le profilage révèle des saccades — afin d’éviter une consommation excessive de mémoire GPU due à une promotion trop importante.

Gratuit pour commencer

Apprends CSS avec un tuteur IA — gratuit

Écris et exécute du vrai code dans ton navigateur, obtiens de l'aide instantanée d'un tuteur IA disponible 24h/24, et reprends là où tu t'es arrêté sur le web ou dans l'app.

Cours
40
Leçons
159

Questions Fréquemment Posées

La leçon « will-change et promotion des couches » est-elle gratuite ?

Oui — le texte complet de « will-change et promotion des couches » 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 « will-change et promotion des couches » ?

Indiquez au navigateur de promouvoir les éléments vers des couches GPU avec will-change pour fluidifier les animations. 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 3 sur 4.

Combien de temps prend la leçon « will-change et promotion des couches » ?

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

  1. CSS critique et blocage du rendu
  2. Mise en page, peinture et composition : la chaîne de rendu
  3. will-change et promotion des couches
  4. Couverture CSS et styles inutilisés
← Retour à CSS Academy