Comment éviter le problème de 'éclair de contenu non stylé' (FOUC) ?
sobes.tech IA
Réponse de l'IA
Les méthodes les plus efficaces :
-
Chargement synchrone du CSS : Placez
<link rel="stylesheet">dans<head>du document pour que le navigateur charge et applique les styles avant le rendu du contenu.<head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Mon Application</title> <link rel="stylesheet" href="/styles/main.css"> <!-- Autres balises dans head --> </head> -
Incruster les styles critiques : Insérez directement dans
<head>les styles nécessaires pour afficher la partie visible de la page ("Above the fold") en utilisant<style>. Cela accélère le rendu initial. Les autres styles peuvent être chargés de manière asynchrone.<head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Mon Application</title> <style> /* Styles critiques ici */ body { margin: 0; padding: 0; } h1 { color: blue; } </style> <link rel="stylesheet" href="/styles/main.css"> <!-- Autres balises dans head --> </head> -
Utiliser
font-display: swapou des propriétés similaires pour les polices : Pour les polices personnalisées pouvant provoquer un FOUT (Flash of Unstyled Text), utilisezfont-displaydans la règle@font-faceen CSS.swappermet d’afficher immédiatement le texte avec la police système et de la remplacer par la police personnalisée après chargement.@font-face { font-family: 'MyCustomFont'; src: url('my-custom-font.woff2') format('woff2'); font-display: swap; /* Ou fallback, optionnel, block */ } -
Application de modèles légers (en rendu côté serveur) : Si vous utilisez le rendu côté serveur (SSR), vous pouvez insérer dans le HTML un ensemble minimal de styles nécessaires pour afficher la structure de la page.
-
Minimiser et combiner les fichiers CSS : Réduire le nombre de requêtes HTTP et la taille des fichiers CSS accélère leur chargement.
-
Utiliser des outils de build : Webpack, Parcel et autres bundlers peuvent automatiser l’insertion de styles critiques et l’optimisation du CSS.