Sobes.tech
Middle

Come evitare il problema del 'flash di contenuto non stilizzato' (FOUC)?

sobes.tech AI

Risposta dell'AI

I metodi più efficaci:

  1. Caricamento sincrono del CSS: Inserisci <link rel="stylesheet"> nel <head> del documento in modo che il browser carichi e applichi gli stili prima del rendering del contenuto.

    <head>
      <meta charset="UTF-8">
      <meta name="viewport" content="width=device-width, initial-scale=1.0">
      <title>La mia app</title>
      <link rel="stylesheet" href="/styles/main.css">
      <!-- Altri tag nel head -->
    </head>
    
  2. Incorporare gli stili critici: Inserisci gli stili necessari per mostrare la parte visibile della pagina ("Above the fold") direttamente nel <head> usando <style>. Questo accelera il rendering iniziale. Gli altri stili possono essere caricati in modo asincrono.

    <head>
      <meta charset="UTF-8">
      <meta name="viewport" content="width=device-width, initial-scale=1.0">
      <title>La mia app</title>
      <style>
        /* Stili critici qui */
        body { margin: 0; padding: 0; }
        h1 { color: blue; }
      </style>
      <link rel="stylesheet" href="/styles/main.css">
      <!-- Altri tag nel head -->
    </head>
    
  3. Utilizzare font-display: swap o proprietà simili per i font: Per i font personalizzati che possono causare FOUT (Flash of Unstyled Text), usa font-display nella regola @font-face in CSS. swap permette di mostrare subito il testo con il font di sistema e sostituirlo con quello personalizzato dopo il caricamento.

    @font-face {
      font-family: 'MyCustomFont';
      src: url('my-custom-font.woff2') format('woff2');
      font-display: swap; /* O fallback, opzionale, block */
    }
    
  4. Applicare modelli leggeri (nel rendering lato server): Se si utilizza il rendering lato server (SSR), si può inserire nell'HTML un set minimo di stili necessari per mostrare lo scheletro della pagina.

  5. Minimizzare e unire i file CSS: Ridurre il numero di richieste HTTP e la dimensione dei file CSS accelera il caricamento.

  6. Utilizzare strumenti di build: Webpack, Parcel e altri bundler possono automatizzare l'inserimento degli stili critici e l'ottimizzazione del CSS.