@ font-faceを使用して、Webサイトにフォントを埋め込みます。最初にテキストがシステムのデフォルトとしてレンダリングされ、次に(おそらくフォントファイルが読み込まれた後)正しいフォントが数秒後にレンダリングされます。フォントのロードなどが完了するまでページのレンダリングを遅らせることで、この遅延を最小限に抑える/取り除く方法はありますか?.
これは、ブラウザーの動作に依存します。
まず、@ fontはどこで宣言されていますか? HTMLのインライン、ページ上のCSSシートで宣言されている、または(できれば)外部CSSシートで宣言されていますか?
それが外部シートにない場合は、それを1つに移動してみてください(これは通常とにかくより良い方法です)。
これが役に立たない場合は、2番目の違いのほんの一部がユーザーエクスペリエンスに実際に非常に有害であると自問する必要がありますか?もしそうなら、JavaScriptを検討してください、あなたができるかもしれないいくつかのこと、リダイレクト、一時停止などがありますが、これらは実際にはworseよりも元の問題。ユーザーにとっては悪いことであり、メンテナンスがさらに悪い。
このリンクは役に立つかもしれません:
Edit:最善のアプローチは、おそらくbase64でフォントをエンコードすることです。これは、HTMLが解析および表示されるまでに、フォントを完全にロードする必要があることを意味します。これを行うには、フォントリスのウェブフォントジェネレーター https://www.fontsquirrel.com/tools/webfont-generator で[エキスパート]をクリックし、次に[base64エンコード]をクリックします。これがTypeKitのようなサービスの仕組みです。
元の答え:フォントがロードされているかどうかを検出する別の方法は、FontLoaderを使用することです https://github.com/smnh/FontLoader =または戦略をコピーすることにより。
フォントが読み込まれると、テキストのサイズが変更されるため、ブラウザのスクロールイベントにバインドします。これには、2つのdiv(高さが変わるとスクロールします)とIEの個別のフォールバックが使用されます。
別の方法として、setInterval
を使用してDOMを定期的にチェックする方法もありますが、javascriptイベントを使用する方がはるかに高速で優れています。
明らかに、bodyの不透明度を0に設定してから、フォントが読み込まれると表示します。
Joni Korpiには、ページの残りの部分の前にフォントを読み込むことに関する素晴らしい記事があります。
http://jonikorpi.com/a-smoother-page-load/
彼はまた、load.gifを使用して遅延を緩和し、ユーザーがイライラしないようにします。
IEが最初にフォントをロードし、次にページの残りの部分をロードします。他のブラウザーは、理由により同時にロードします。フォントをホストするサーバーまたはフォントのダウンロードに問題があると想像してください。フォントがロードされるまで、サイト全体をハングアップします。
https://github.com/typekit/webfontloader を使用します
設定のイベントを確認してください https://github.com/typekit/webfontloader#configuration
<script src="https://ajax.googleapis.com/ajax/libs/webfont/1.6.26/webfont.js"></script>
<script>
WebFont.load({
custom: {
families: [ "CustomFont1", "CustomFont2" ]
},
active: function() {
//Render your page
}
});
</script>
誰も言及していないので、この質問には更新が必要だと思います。問題を解決する方法は、最新のブラウザーでサポートされている「プリロード」オプションを使用することでした。
誰かが古いブラウザをサポートする必要がない場合。
<link rel="preload" href="assets/fonts/xxx.woff" as="font" type="font/woff" crossorigin>
詳細が記載された便利なリンク:
https://developer.mozilla.org/en-US/docs/Web/HTML/Preloading_contenthttp://www.bramstein.com/writing/preload-hints-for- web-fonts.html
@ font-face内でCSS font-displayを使用できます。利用可能なすべての値のキーワードは次のとおりです。
Giulio Mainardiは、それらすべてについてのニースの記事を書いており、サイトポイントのどこでそれを使うべきでしょうか。
ここで読むことができます: https://www.sitepoint.com/css-font-display-future-font-rendering-web/?utm_source=frontendfocus&utm_medium=email