Sobes.tech
Middle

Wie man das Problem des 'Flash of Unstyled Content' (FOUC) vermeidet?

sobes.tech KI

Antwort von AI

Die effektivsten Methoden:

  1. Synchrone CSS-Ladung: Platzieren Sie <link rel="stylesheet"> im <head> des Dokuments, damit der Browser die Styles vor dem Rendern des Inhalts lädt und anwendet.

    <head>
      <meta charset="UTF-8">
      <meta name="viewport" content="width=device-width, initial-scale=1.0">
      <title>Meine App</title>
      <link rel="stylesheet" href="/styles/main.css">
      <!-- Weitere head-Tags -->
    </head>
    
  2. Kritische Styles inline einfügen: Fügen Sie die Styles, die notwendig sind, um den sichtbaren Teil der Seite anzuzeigen ("Above the fold"), direkt in <head> mit <style> ein. Dies beschleunigt das initiale Rendering. Die restlichen Styles können asynchron geladen werden.

    <head>
      <meta charset="UTF-8">
      <meta name="viewport" content="width=device-width, initial-scale=1.0">
      <title>Meine App</title>
      <style>
        /* Kritische Styles hier */
        body { margin: 0; padding: 0; }
        h1 { color: blue; }
      </style>
      <link rel="stylesheet" href="/styles/main.css">
      <!-- Weitere head-Tags -->
    </head>
    
  3. Verwendung von font-display: swap oder ähnlichen Eigenschaften für Schriftarten: Für benutzerdefinierte Schriftarten, die FOUT (Flash of Unstyled Text) verursachen können, verwenden Sie font-display in der @font-face-Regel in CSS. swap zeigt den Text sofort mit der Systemsprache an und ersetzt ihn nach dem Laden durch die benutzerdefinierte Schrift.

    @font-face {
      font-family: 'MyCustomFont';
      src: url('my-custom-font.woff2') format('woff2');
      font-display: swap; /* Oder fallback, optional, block */
    }
    
  4. Verwendung leichter Server-Render-Templates: Wenn Server-Rendering (SSR) verwendet wird, können minimale Styles direkt im HTML eingebettet werden, um das Skelett der Seite anzuzeigen.

  5. Minimierung und Zusammenfassung von CSS-Dateien: Reduzieren Sie die Anzahl der HTTP-Anfragen und die Größe der CSS-Dateien, um die Ladezeit zu verkürzen.

  6. Verwendung von Build-Tools: Webpack, Parcel und andere Bundler können die Einbettung kritischer Styles und die CSS-Optimierung automatisieren.