Uno dei motivi è che ai web designer oggigiorno piace usare i caratteri web (di solito in formato WOFF ), ad esempio tramite i caratteri Web di Google .
In precedenza, gli unici caratteri che potevano essere visualizzati su un sito erano quelli installati localmente dall'utente. Dal momento che, ad esempio, gli utenti di Mac e Windows non hanno necessariamente gli stessi caratteri, i progettisti istintivamente hanno sempre definito le regole di
font-family: Arial, Helvetica, sans-serif;
dove, se il primo carattere non fosse stato trovato sul sistema, il browser avrebbe cercato il secondo, e infine un carattere "sans-serif" di fallback.
Ora, si può dare un URL di carattere come regola CSS per fare in modo che il browser scarichi un carattere, come tale:
@import url(http://fonts.googleapis.com/css?family=Droid+Serif:400,700);
e quindi caricare il carattere per un elemento specifico, ad esempio:
font-family: 'Droid Serif',sans-serif;
Questo è molto popolare per essere in grado di utilizzare caratteri personalizzati, ma porta anche al problema che non viene visualizzato alcun testo fino a quando la risorsa non è stata caricata dal browser, che include il tempo di download, il tempo di caricamento del carattere e il tempo di rendering. Mi aspetto che questo sia il manufatto che stai vivendo.
Ad esempio: uno dei miei giornali nazionali, Dagens Nyheter , usa i caratteri web per i loro titoli, ma non i loro contatti, quindi quando quel sito viene caricato di solito vedo i primi, e mezzo secondo dopo tutti gli spazi vuoti sopra sono popolati con titoli (questo è vero su Chrome e Opera, almeno. Non ne ho provati altri).
(Inoltre, i designer spruzzano JavaScript assolutamente ovunque in questi giorni, quindi forse qualcuno sta cercando di fare qualcosa di intelligente con il testo, motivo per cui è in ritardo. Sarebbe molto specifico per il sito, però: la tendenza generale del testo a essere ritardato in questi volte è il problema dei caratteri web sopra descritto, credo.)
aggiunta
Questa risposta è diventata molto votata, anche se non sono entrato nei dettagli, o forse per questo. Ci sono stati molti commenti nel thread delle domande, quindi proverò ad espandermi un po '(molti commenti sembrano essere scomparsi poco dopo la protezione dell'argomento - alcuni moderatori probabilmente li hanno puliti manualmente). Inoltre, leggi le altre risposte in questo thread mentre si espandono a modo loro.
Il fenomeno è apparentemente noto come "lampo di contenuto non stilato" in generale e "lampo di testo non stilato" in particolare. La ricerca di "FOUC" e "FOUT" fornisce ulteriori informazioni.
Posso consigliare il post del web designer Paul Irish su FOUT in relazione ai font web .
Ciò che si può notare è che diversi browser lo gestiscono in modo diverso. Ho scritto sopra che avevo testato Opera e Chrome, che si sono comportati entrambi in modo simile. Tutti quelli a base di WebKit (Chrome, Safari, etc.) scelgono di evitare FOUT da non il rendering del testo carattere web con un carattere di ripiego durante il periodo di web carattere carico. Anche se il font web è memorizzato nella cache, ci sarà un ritardo nel rendering . Ci sono molti commenti in questo thread di domande che dicono il contrario e che è assolutamente sbagliato che i caratteri memorizzati nella cache si comportino in questo modo, ma ad esempio dal link sopra:
In quali casi otterrai un FOUT
- Volontà: download e visualizzazione di un ttf / otf / woff remoto
- Will: Visualizzazione di un ttf / otf / woff memorizzato nella cache
- Volontà: download e visualizzazione di un uri ttf / otf / woff
- Will: Visualizzazione di un uri ttf / otf / woff memorizzato nella cache
- Non: visualizzazione di un carattere già installato e denominato nel proprio stack di caratteri tradizionale
- Non: visualizzazione di un carattere installato e denominato utilizzando la posizione locale ()
Poiché Chrome attende che il rischio FOUT sia passato prima del rendering, ciò comporta un ritardo. In che misura l'effetto è visibile (specialmente quando si carica dalla cache) sembra dipendere tra l'altro dalla quantità di testo che deve essere reso e forse da altri fattori, ma la memorizzazione nella cache non rimuove completamente l'effetto.
In fondo al post, Irish ha anche alcuni aggiornamenti sul comportamento del browser dal 2011 al 14-14:
- Firefox (a partire da FFb11 e FF4 Final) non ha più un FOUT! Wooohoo! http://bugzil.la/499292 Fondamentalmente il testo è invisibile per 3 secondi, quindi ripristina il carattere di fallback. Il webfont probabilmente si caricherà entro quei tre secondi però ... si spera ...
- IE9 supporta WOFF, TTF e OTF (anche se richiede un set di bit di incorporamento , per lo più moot se si utilizza WOFF). PERÒ!!! IE9 ha un FOUT. :(
- Webkit ha una patch in attesa di atterrare per mostrare il testo di fallback dopo 0,5 secondi. Lo stesso comportamento di FF ma 0,5 secondi anziché 3 secondi.
- Aggiunta : Blink ha registrato un bug anche per questo , ma sembra che non sia stato raggiunto un consenso finale su cosa fare con esso - attualmente la stessa implementazione di WebKit.
Se questa fosse una domanda rivolta ai progettisti, si potrebbe cercare di evitare questo tipo di problemi webfontloader
, ma sarebbe un'altra domanda. Il link Paul Irish approfondisce ulteriormente la questione.