L'une des raisons est que les concepteurs de sites Web préfèrent aujourd'hui utiliser des polices Web (généralement au format WOFF ), par exemple via des polices Google Web .
Auparavant, les seules polices pouvant être affichées sur un site étaient celles que l'utilisateur avait installées localement. Par exemple, les utilisateurs de Mac et de Windows n’ayant pas nécessairement les mêmes polices, les concepteurs ont toujours instinctivement défini des règles comme suit:
font-family: Arial, Helvetica, sans-serif;
où, si la première police n’était pas trouvée sur le système, le navigateur chercherait la seconde, et enfin une police de remplacement "sans-serif".
Maintenant, on peut donner une URL de police en tant que règle CSS pour que le navigateur télécharge une police, en tant que telle:
@import url(http://fonts.googleapis.com/css?family=Droid+Serif:400,700);
puis chargez la police pour un élément spécifique, par exemple:
font-family: 'Droid Serif',sans-serif;
Il est très courant d'utiliser des polices personnalisées, mais le problème est qu'aucun texte ne s'affiche tant que la ressource n'a pas été chargée, ce qui inclut le temps de téléchargement, le temps de chargement de la police et le temps de rendu. Je suppose que c'est l'artefact que vous rencontrez.
Par exemple, l'un de mes journaux nationaux, Dagens Nyheter , utilise des polices Web pour ses titres, mais pas ses leads. Ainsi, lorsque ce site est chargé, je vois généralement les leads en premier, puis une demi-seconde plus tard, tous les espaces vides ci-dessus sont remplis. avec des titres (c'est vrai sur Chrome et Opera, au moins. Je n'ai pas essayé d'autres).
(En outre, les concepteurs saupoudrent JavaScript absolument partout ces jours-ci, alors peut-être que quelqu'un essaie de faire quelque chose d'intelligent avec le texte, ce qui explique pourquoi il est retardé. Ce serait très spécifique à un site, cependant: Je pense que le problème des polices Web est décrit ci-dessus.)
Une addition
Cette réponse est devenue très populaire, même si je n’ai pas donné beaucoup de détails, ou peut - être à cause de cela. Il y a eu beaucoup de commentaires dans le fil de la question, je vais donc essayer de développer un peu (beaucoup de commentaires semblent avoir disparu peu de temps après la protection du sujet - un modérateur les a probablement nettoyés manuellement). Lisez également les autres réponses de ce fil car elles se développent toutes à leur manière.
Le phénomène est apparemment appelé "flash de contenu non stylé" en général, et "flash de texte non stylé" en particulier. La recherche de "FOUC" et "FOUT" donne plus d'informations.
Je peux recommander le post du concepteur Web Paul Irish sur FOUT concernant les polices Web .
Ce que l’on peut noter, c’est que différents navigateurs gèrent cela différemment. J'ai écrit ci-dessus que j'avais testé Opera et Chrome, qui se comportaient tous les deux de la même manière. Toutes les solutions WebKit (Chrome, Safari, etc.) choisissent d'éviter FOUT en ne rendant pas le texte de police Web avec une police de secours pendant la période de chargement de la police Web. Même si la police Web est mise en cache, il y aura un délai de rendu . Il y a beaucoup de commentaires dans cette question qui disent le contraire et qu'il est totalement faux que les polices en cache se comportent comme ceci, mais par exemple à partir du lien ci-dessus:
Dans quels cas obtiendrez-vous un FOUT
- Will: Télécharger et afficher un fichier ttf / otf / woff distant
- Will: Afficher un ttf / otf / woff en cache
- Will: Télécharger et afficher un fichier data-uri ttf / otf / woff
- Will: Afficher une cache de données-uri ttf / otf / woff
- Ne veut pas: afficher une police déjà installée et nommée dans votre pile de polices traditionnelle
- Ne veut pas: afficher une police installée et nommée à l'aide de l'emplacement local ()
Étant donné que Chrome attend que le risque FOUT ait disparu avant de générer le rendu, cela entraîne un délai. Dans quelle mesure l'effet est visible (en particulier lors du chargement à partir du cache) semble dépendre, entre autres choses, de la quantité de texte à restituer et peut-être d'autres facteurs, mais la mise en cache ne supprime pas complètement l'effet.
En irlandais, des mises à jour concernant le comportement du navigateur ont également été mises à jour en 2011–04–14:
- Firefox (à partir de FFb11 et FF4 Final) n'a plus de FOUT! Wooohoo! http://bugzil.la/499292 Fondamentalement, le texte est invisible pendant 3 secondes, puis il renvoie la police de secours. La webfont va probablement se charger dans ces trois secondes… espérons…
- IE9 prend en charge WOFF, TTF et OTF (bien que cela nécessite un ensemble de bits d’incorporation - la plupart du temps sans intérêt si vous utilisez WOFF). POURTANT!!! IE9 a un FOUT. :(
- Webkit a un correctif en attente d'atterrissage pour afficher le texte de secours après 0,5 seconde. Donc, même comportement que FF mais 0,5s au lieu de 3s.
- Ajout : Blink a également enregistré un bogue pour cela , mais il semble qu'aucun consensus final n'ait encore été trouvé sur ce qu'il doit faire - actuellement, même implémentation que WebKit.
S'il s'agissait d'une question destinée aux concepteurs, on pourrait trouver des moyens d'éviter ce genre de problèmes, par exemple webfontloader
, mais ce serait une autre question. Le lien Paul Irish entre dans les détails de cette affaire.