Come evitare il problema del 'flash di contenuto non stilizzato' (FOUC)?
sobes.tech AI
Risposta dell'AI
I metodi più efficaci:
-
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> -
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> -
Utilizzare
font-display: swapo proprietà simili per i font: Per i font personalizzati che possono causare FOUT (Flash of Unstyled Text), usafont-displaynella regola@font-facein CSS.swappermette 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 */ } -
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.
-
Minimizzare e unire i file CSS: Ridurre il numero di richieste HTTP e la dimensione dei file CSS accelera il caricamento.
-
Utilizzare strumenti di build: Webpack, Parcel e altri bundler possono automatizzare l'inserimento degli stili critici e l'ottimizzazione del CSS.