Sobes.tech
Middle

Jak předejít problému s 'blýskáním neformátovaného obsahu' (FOUC)?

sobes.tech AI

Odpověď od AI

Nejúčinnější metody:

  1. Synchronní načítání CSS: Umístěte <link rel="stylesheet"> do <head> dokumentu, aby prohlížeč načetl a použil styly před vykreslením obsahu.

    <head>
      <meta charset="UTF-8">
      <meta name="viewport" content="width=device-width, initial-scale=1.0">
      <title>Moje aplikace</title>
      <link rel="stylesheet" href="/styles/main.css">
      <!-- Další tagy v head -->
    </head>
    
  2. Vkládání kritických stylů: Vložte styly potřebné k zobrazení viditelné části stránky ("Above the fold") přímo do <head> pomocí <style>. To urychlí počáteční vykreslení. Ostatní styly lze načíst asynchronně.

    <head>
      <meta charset="UTF-8">
      <meta name="viewport" content="width=device-width, initial-scale=1.0">
      <title>Moje aplikace</title>
      <style>
        /* Kritické styly zde */
        body { margin: 0; padding: 0; }
        h1 { color: blue; }
      </style>
      <link rel="stylesheet" href="/styles/main.css">
      <!-- Další tagy v head -->
    </head>
    
  3. Použití font-display: swap nebo podobných vlastností pro písma: U vlastních písem, která mohou způsobit FOUT (Flash of Unstyled Text), použijte font-display v pravidle @font-face v CSS. swap umožní okamžitě zobrazit text systémovým písmem a nahradit ho vlastním po načtení.

    @font-face {
      font-family: 'MyCustomFont';
      src: url('my-custom-font.woff2') format('woff2');
      font-display: swap; /* Nebo fallback, volitelné, block */
    }
    
  4. Použití lehkých šablon (při server-side renderingu): Pokud používáte SSR, můžete do HTML vložit minimální sadu stylů potřebných k zobrazení skeletu stránky.

  5. Minimalizace a sloučení CSS souborů: Snížení počtu HTTP požadavků a velikosti CSS souborů urychlí jejich načítání.

  6. Použití nástrojů pro sestavení: Webpack, Parcel a další bundlery mohou automatizovat vkládání kritických stylů a optimalizaci CSS.