Sobes.tech
Middle

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 :

  1. 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>
    
  2. 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>
    
  3. Utiliser font-display: swap ou des propriétés similaires pour les polices : Pour les polices personnalisées pouvant provoquer un FOUT (Flash of Unstyled Text), utilisez font-display dans la règle @font-face en CSS. swap permet 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 */
    }
    
  4. 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.

  5. 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.

  6. Utiliser des outils de build : Webpack, Parcel et autres bundlers peuvent automatiser l’insertion de styles critiques et l’optimisation du CSS.