Voilà donc comme promis le premier article de ce blog, avec une astuce technique bien connue maintenant mais qui vaut toujours le coup d’être dite et répétée.
Comment insérer des polices ( fontes ) particulières ( c’est-à-dire qui ne font pas partie de celles par défaut - Arial, Verdana, Times, etc. ) dans son site ?
Il y a bien évidement ( et comme toujours ) plusieurs manières de faire, mais je vous livre ici celle que j’ai choisi.
Elle utilise la règle de CSS 3 "@font-face" ( cf le paragraphe sur font-face ) mais aussi la Google Font API, code Javascript qui encapsule le procédé et lui ajoute de la souplesse.
Le principe est très simple : on laisse l’API Javascript charger des fontes ( disponibles sur des ressources distantes ou bien en local, ce qui nous intéresse bien plus ).
Le script marque l’arborescence HTML ( ie ajoute une classe à la balise html ) en fonction de l’état de chargement de la fonte ( en attente, réussi ou bien erreur ).
Il ne reste plus qu’à styler notre code HTML en fonction de l’état de téléchargement de la fonte, par exemple :
Afin que la ou les fontes puissent être lues par le plus grand nombre de navigateurs possible, on utilise les règles font-face de CSS.
On peut bien entendu les écrire soi-même, mais le plus simple reste de les générer sur le très utile Font-face generator de Font Squirrel.
L’utilisation en est très simple, et on obtient un kit contenant les règles font-face ainsi que les fichiers convertis.
Le code des font-face ressemble à ça ( ici sur la DIN Regular ) :
On place ce code dans un fichier fonts.css, qui sera appelé par l’API afin de télécharger les bonnes fontes.
Dans le head de la page, on écrit le script qui va charger nos fontes.
On peut bien entendu appeler l’API de Google Font de manière personnalisée, mais autant utiliser le bout de code présent sur leur site et fait pour ça !
Dans l’exemple on charge deux familles de police : DIN Regular et DIN Condensed Medium. Les font-face sont déclarés dans le fichier styles/fonts.css
Au chargement de la page, l’API ajoute des classes à la balise html de ladite page.
Les classes utiles sont :
Les WebFont Loader ajoute aussi des classes similaires, mais particulières à chaque fonte dont le chargement à été demandé, ce qui permet d’être encore plus précis. Dans notre cas :
et
On peut maintenant styler la page ( dans la feuille de style appropriée ) en fonction de l’étape de chargement de la fonte
On pourra par exemple afficher une image de preloading tant que les fontes sont en chargement.