28172 sujets

CSS et mise en forme, CSS3

Bonjour à vous,

J'ai un bout de css pour changer ma police.
Cela marche parfaitement avec tous les navigateurs, avec IE7 et 8 mais pas IE9 Smiley decu

Vous savez pourquoi ? Je capte pas.

Merci à vous:


@font-face {   
   font-family: "NewScript";
   src: url( font/BlairMdITC.eot ); /* IE */    
   src: local("BlairMdITC"), url( font/BlairMdITC.ttf ) format("truetype"); /* autres navigateurs */   
}  
TRUNCKS a écrit :
Vous savez pourquoi ? Je capte pas.

IE 6-8 peut utiliser le format EOT, mais ne comprend pas la syntaxe local('Nom de la police') pour la propriété src. Il va donc ignorer la deuxième déclaration de src (erreur de syntaxe) et conserver la première.
IE9 peut utiliser le format EOT, pas le format TrueType, et comprend la syntaxe local(...). Il va donc conserver la deuxième déclaration (qui écrase la première), mais ne pourra pas utiliser le format TrueType ou utiliser une version locale qui n'existe probablement pas.

Voilà pour les explications.

Pour la syntaxe «bulletproof», il y a une version plus récente il me semble:
http://www.fontspring.com/blog/the-new-bulletproof-font-face-syntax

Pour ma part je suis plutôt d'avis d'utiliser uniquement le format WOFF, afin de restreindre l'utilisation de @font-face à des navigateurs récents (IE9+, FF3.6+, etc.) qui ont plus de chances d'être utilisés sur des OS récents plutôt que sur des Windows XP où le rendu des fontes @font-face peut être catastrophiques. Dégradation gracieuse (fonte système de substitution) pour les autres.