Sobes.tech
Middle

Ako sa vyhnúť problému 'záblesku neštýlovaného obsahu' (FOUC)?

sobes.tech AI

Odpoveď od AI

Najúčinnejšie spôsoby:

  1. Synchronizované načítanie CSS: Umiestnite <link rel="stylesheet"> do <head> dokumentu, aby prehliadač načítal a aplikoval štýly pred vykreslením obsahu.

    <head>
      <meta charset="UTF-8">
      <meta name="viewport" content="width=device-width, initial-scale=1.0">
      <title>Môj App</title>
      <link rel="stylesheet" href="/styles/main.css">
      <!-- Ostatné tagy v head -->
    </head>
    
  2. Vloženie kritických štýlov: Vložte štýly potrebné na zobrazenie viditeľnej časti stránky ("Above the fold") priamo do <head> pomocou <style>. To zrýchli počiatočné vykreslenie. Ostatné štýly môžu byť načítané asynchrónne.

    <head>
      <meta charset="UTF-8">
      <meta name="viewport" content="width=device-width, initial-scale=1.0">
      <title>Môj App</title>
      <style>
        /* Kritické štýly tu */
        body { margin: 0; padding: 0; }
        h1 { color: blue; }
      </style>
      <link rel="stylesheet" href="/styles/main.css">
      <!-- Ostatné tagy v head -->
    </head>
    
  3. Použitie font-display: swap alebo podobných vlastností pre písma: Pre vlastné písma, ktoré môžu spôsobovať FOUT (Flash of Unstyled Text), použite font-display v pravidle @font-face v CSS. swap umožňuje okamžite zobraziť text systémovým písmom a nahradiť ho vlastným po načítaní.

    @font-face {
      font-family: 'MyCustomFont';
      src: url('my-custom-font.woff2') format('woff2');
      font-display: swap; /* Ale fallback, voliteľné, block */
    }
    
  4. Použitie ľahkých šablón (pri server-side renderingu): Ak používate SSR, môžete do HTML vložiť minimálny súbor štýlov potrebných na zobrazenie skeletu stránky.

  5. Minimalizácia a zlúčenie CSS súborov: Zníženie počtu HTTP požiadaviek a veľkosti CSS súborov zrýchľuje ich načítanie.

  6. Použitie nástrojov na zostavovanie: Webpack, Parcel a ďalšie môžu automaticky vkladať kritické štýly a optimalizovať CSS.