2009-06-03 8 views

Répondre

0

Il n'y a pas de bonne façon de procéder. Bien que si vous avez une liste de polices que vous vous interrogez sur, créez une classe avec une solution de repli toujours présente:

span#knownfont{font-family:Verdana, font-size:12px;} 
span#font1{font-family:NonExistingFont1, Verdana, font-size:12px;} 
span#font2{font-family:NonExistingFont2, Verdana, font-size:12px;} 

...

Then create HTML for each case: 
<span id="knownfont">Lorem ipsum dolor sit amet</span> 
<span id="font1">Lorem ipsum dolor sit amet</span> 
<span id="font2">Lorem ipsum dolor sit amet</span> 

Ensuite, écrire un script qui compare la largeur la police-envergure connue et chacun des autres. Si la largeur diffère, la police existe sur le client.

0

Je sais que ce n'est pas encore supporté par tous les navigateurs, mais il ya @ font-face dans css comme décrit here, donc si vous savez que vos utilisateurs sont sur IE (par exemple) vous pouvez utiliser cette police.

1

Il n'y a pas moyen infaillible de déterminer installé (et utilisable) polices sur une machine client via le navigateur. Flash peut vous permettre de faire cela, ou peut-être un peu fou (mais amusant à écrire) JavaScript qui fait des hypothèses sur la taille des éléments avec une police donnée - mais ce script peut être sensible aux différences dans les paramètres du client, peu importe comment de nombreux cas, il considère.

Je recommande fortement de ne pas utiliser l'approche de sondage/déploiement que vous proposez. Vous aurez des décisions impossibles à prendre - par exemple quel pourcentage de disponibilité est acceptable? Si c'est 100%, que faites-vous quand un nouvel utilisateur arrive qui n'a pas cette police? Si ce n'est pas le cas, quelle proportion de vos utilisateurs êtes-vous à l'aise avec une expérience dégradée?

Avez-vous considéré sIFR ou simplement un élément d'image avec l'attribut alt approprié?

Si vous avez des exigences typographiques spécifiques, il peut être utile de garder un œil sur ceci: http://blog.typekit.com/.

1

Vous pouvez obtenir une liste des polices installées dans le système d'exploitation client avec Flash:

var embeddedAndDeviceFonts:Array = Font.enumerateFonts(true); 

Vous pouvez ensuite utiliser le ExternalInterface pour déplacer ces informations entre Flash et Javascript. Il ne nécessite pas beaucoup de code.

Consultez my blog post about it pour plus d'informations et a demo implementation.

Questions connexes