@font-face
を使用して標準以外のフォントでスタイルを設定すると、実際のレンディションが発生する前にブラウザがまずフォントファイルをダウンロードする必要があります(CSS、JavaScriptなど) 。フォントファイルの読み込み後にコンテナの高さを計算する
これは、jQuery .height()
がコンテナの高さを計算しようとすると、Chrome(v16.0.912.63)とSafari(v5.1.2)に問題が発生します。 計算された高さはです。フォントのロードが完了するまでです。下記(:working exampleビュー):考える
/* CSS */
h1 {
font-family: MuseoSlab-500, "Helvetica Neue", Helvetica, Arial, sans-serif;
/* MuseoSlab-500 is defined using @font-face. */
}
/* HTML */
<div id="box">
<h1>This is my long header. What do you think? How about now?</h1>
</div>
/* JavaScript */
$(function() {
alert("The height of the above <div> = " + $('div#box').height());
});
しかし、Firefoxの(V8.0.1)は、テキストが非標準フォントを使用してレンダリングされた後、すなわち、正しい高さを計算することができます。
実際にChromeに伝える実用的な方法があるのか、それともすべてのブラウザであれば、計算を行う前に意図したフォントでテキストがレンダリングされるまで待つのが問題です。
$(window).load()
を使用していますが、これは、すべての画像もロードを終了します。それはそんなに遅くなる。
これまでに使ったことがある場合は、 '@ font-face'が指定されたローカルスタイルシートを読み込むことができますか?どのプロバイダからもスタイルシートをロードする方法について言及しましたが、ローカルスタイルシートで動作するかどうかはわかりませんでした。 – moey