2009-06-03 2 views

答えて

9

DIVをさまざまなフォントでレンダリングし、結果として得られるDIVが指定されたフォントに適した寸法を持つかどうかを確認するスクリプトがあります。

http://www.lalit.org/lab/javascript-css-font-detect

0

これを行う良い方法はありません。あなたが疑問を抱いているフォントのリストを持っている場合も、常に現在のフォールバックを持つクラスを作成します。

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> 

は、その後の幅を比較するスクリプトを書きます既知のフォント・スパンおよびその他のフォント・スパン。幅が異なる場合、フォントはクライアント上に存在します。

0

まだすべてのブラウザでサポートされているわけではありませんが、hereのようにCSSの@ font-faceがあるので、ユーザーがIE上にいることが分かっている場合は、これを使用してフォントを取得できます。

1

何の設置を決定する確実な方法(および使用可能)フォントは、ブラウザを介してクライアントマシン上にありません。

フラッシュでは、これを行うことができます。または、特定のフォントで要素のサイズを前提にしたクレイジーな(書き込めるような)JavaScriptを使用することもできますが、このスクリプトはクライアントの設定の違いに影響されます多くの場合それが考慮されます。

私が提案している調査/導入アプローチに対して強くお勧めします。あなたは不可能な決定を下すでしょう - 例えば、利用可能なパーセンテージのパーセンテージは容認できますか?それが100%の場合、このフォントを持たない新しいユーザーが来たときはどうしますか?そうでない場合は、経験の浅い人はどれだけの割合で快適ですか?

あなたはsIFRまたは適切なalt属性の画像要素を考えましたか?

特定の書体に関する要件がある場合は、この点に注意する価値があります。http://blog.typekit.com/

2

jQueryプラグインFontUnstackをチェックアウトすると、questionからです。

+0

あなたの答えは受け入れられるべきです。 –

1

あなたはフラッシュを使用してクライアントのOSにインストールされているフォントのリストを取得することができます。

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

その後、FlashとJavascriptの間でこの情報を移動するためにExternalInterfaceを使用することができます。それは多くのコードを必要としません。

詳細についてはmy blog post about itを、a demo implementationを確認してください。

関連する問題