Sobes.tech
Middle

Cum să eviți problema 'flash-ului de conținut fără stil' (FOUC)?

sobes.tech AI

Răspuns de la AI

Cele mai eficiente metode:

  1. Încărcarea sincrona a CSS: Plasați <link rel="stylesheet"> în <head> al documentului pentru ca browserul să încarce și să aplice stilurile înainte de randarea conținutului.

    <head>
      <meta charset="UTF-8">
      <meta name="viewport" content="width=device-width, initial-scale=1.0">
      <title>Aplicația mea</title>
      <link rel="stylesheet" href="/styles/main.css">
      <!-- Alte etichete în head -->
    </head>
    
  2. Incorporarea stilurilor critice: Inserează stilurile necesare pentru afișarea părții vizibile a paginii ("Above the fold") direct în <head> folosind <style>. Acest lucru accelerează randarea inițială. Restul stilurilor pot fi încărcate asincron.

    <head>
      <meta charset="UTF-8">
      <meta name="viewport" content="width=device-width, initial-scale=1.0">
      <title>Aplicația mea</title>
      <style>
        /* Stiluri critice aici */
        body { margin: 0; padding: 0; }
        h1 { color: blue; }
      </style>
      <link rel="stylesheet" href="/styles/main.css">
      <!-- Alte etichete în head -->
    </head>
    
  3. Utilizarea font-display: swap sau a proprietăților similare pentru fonturi: Pentru fonturile personalizate care pot cauza FOUT (Flash of Unstyled Text), folosiți font-display în regula @font-face în CSS. swap permite afișarea imediată a textului cu fontul sistemului și înlocuirea acestuia după încărcare.

    @font-face {
      font-family: 'MyCustomFont';
      src: url('my-custom-font.woff2') format('woff2');
      font-display: swap; /* Sau fallback, opțional, block */
    }
    
  4. Aplicarea șabloanelor ușoare (în renderizarea pe server): Dacă se utilizează renderizarea pe server (SSR), se pot încorpora în HTML un set minim de stiluri necesare pentru afișarea scheletului paginii.

  5. Minimizarea și combinarea fișierelor CSS: Reducerea numărului de solicitări HTTP și a dimensiunii fișierelor CSS accelerează încărcarea.

  6. Utilizarea instrumentelor de construire: Webpack, Parcel și alți bundleri pot automatiza încorporarea stilurilor critice și optimizarea CSS.