ホームページ >ウェブフロントエンド >CSSチュートリアル >css font-display:Web上でのフォントレンダリングの未来
Font-Displayが提供するさまざまな機能を詳細に見る前に、CSSで機能をどのように使用するかを簡単に検討しましょう。
まず、Font-displayはCSSプロパティではありませんが、イントロで述べたように、 @font-face at-ruleの記述子です。これは、次のコードに示されているように、 @font-faceルール内で使用する必要があることを意味します。
このスニペットでは、フォントSaira condensedのスワップ値を定義しています。auto
swap
フォールバック
<span><span>@font-face</span> { </span> <span>font-family: 'Saira Condensed'; </span> <span>src: <span>url(fonts/sairacondensed.woff2)</span> format('woff2'); </span> <span>font-display: swap; </span><span>}</span>
optional
font-displayの初期値はautoです。
ブロック期間。この期間中、ブラウザはテキストを目に見えない
この値は、ブラウザがブラウザによって選択されたデフォルトのフォントディスプレイ動作を採用するようにブラウザに指示します。多くの場合、この戦略は次の値、ブロックに似ています。
font-display:blockこの値では、短いブロック期間(仕様は3秒の期間を推奨)の後、スワップ期間は無限に拡張されます。これは、この状況で失敗期間がないことを意味します。
ブラウザが要求されたフォントを一時的に待機している間、目に見えないフォールバックフォントでテキストをレンダリングします。その後、フォントがまだ使用できない場合、フォールバックフォントが表示されます。そして、ダウンロードが完了するたびに、ブラウザは必要なフォントでテキストを再レンダリングします。次のビデオでこの動作を見ることができます。これは、その見出しに特定のWebフォントを組み込んだ簡単なテストページを使用します。
ページのロードの先頭で、見出しは見えませんが、それはdomにあります。約3秒後、フォントがまだ使用できない場合、テキストはフォールバックフォントで表示されます。ビデオデモでは、Chrome Devtoolsのネットワークスロットリング機能を使用して、ネットワーク条件が不十分です。最後に、フォントがなんとかダウンロードしたとき、見出しはそれで再レンダリングされます。
font-display:swap言い換えれば、ブラウザはフォントを待つのではなく、代わりにフォールバックフォントでテキストをすぐにレンダリングします。次に、フォントが使用可能になるたびに、テキストはそれで再レンダリングされます。
これを確認しましょう:
https://uploads.sitepoint.com/wp-content/uploads/2017/09/1508342017fontdisplay02.mp4
https://uploads.sitepoint.com/wp-content/uploads/2017/09/1508342067fontdisplay03.mp4
次のビデオでは、スワップ期間のタイムアウトが始まる前にフォントの読み込みが速くなるため、フォントは予想どおりに使用されます。仕様を最初に読んだとき、フォントディスプレイ戦略に割り当てられた名前がそれほど明確ではないことがわかりました。これは、仕様自体でも指摘されています。これは、各戦略の意図された使用をよりよく示し、次の代替案を提案するSPEC使用名の将来のバージョンを示唆しています。
。 この値を使用すると、フォントディスプレイのタイムラインには短いブロック期間があります(繰り返しますが、仕様は100ミリ秒の時間間隔を推奨します)とゼロ期スワップ期間があります。したがって、故障期間はすぐにブロック期間に続きます。つまり、フォントが容易に利用できない場合、ページ訪問期間中は使用されません。しかし、最終的にフォントをバックグラウンドで完全にダウンロードできるため、将来のページのロードで即時レンダリングできるようになります。 しかし、特にネットワーク条件が低い下で、ユーザーエージェントはフォントのダウンロードを自由に中止したり、開始したりしないことをここで指摘する必要があります。これは、ネットワーク接続の品質に不必要に影響を与えないようにしています。したがって、サイトはまだ使用可能ですが、フォントは将来のページのロードですぐに使用できません。
以下のビデオでは、テストページがネットワークをスロットすることなく読み込まれています。フォントはすぐにダウンロードされますが、短いブロック期間後にのみ、テキストはすべての訪問期間中にフォールバックフォントで表示されます。 https://uploads.sitepoint.com/wp-content/uploads/2017/09/1508342072fontdisplay05.mp4
次のビデオでは、ページは同じネットワーク条件の下でリロードされていますが、今回はキャッシュを有効にして、2回目の訪問をシミュレートします。
先に進む前に、フォールバックとオプションの値を使用するときにブロック期間に推奨される約100ミリ秒の非常に短い期間に注意してください。これは、フォールバックフォントを使用する前に、クイックロードフォントの短い期間(またはキャッシュからのロード)を表示するために、したがって「非スタイルのテキストのフラッシュ」またはFOUTを回避するためです。
私は、オプションと同じ短い間隔を使用する代わりに、Font-Display:Swapを使用するときに、ブロック期間がゼロになる理由を実際に疑問に思いました。スペックのGitHubリポジトリには、「スワップ」に他の「小さなブロック期間」を使用させるようにするためのオープンな問題があります。 フォールバックフォントについて上記の議論では、何度かフォールバックフォントについて言及しました。しかし、これはどこから来るのでしょうか?
これは、たとえば、レンダリングされたフォントとしてArialを使用するWindowsマシンで、検証することができます(オプションについては上記のビデオを参照)。
サポート
フォントディスプレイの記述子のサポートを作成する時点では、次のように見えます。
<span><span>@font-face</span> { </span> <span>font-family: 'Saira Condensed'; </span> <span>src: <span>url(fonts/sairacondensed.woff2)</span> format('woff2'); </span> <span>font-display: swap; </span><span>}</span>Chromeはバージョン60
以来それをサポートしています
オペラは、バージョン47これについて説明したGoogle Fonts Github Repoには、オープンな問題があります。この機能に興味を示すために1を追加してください!
また、また、CSSフォントモジュールレベル4が、 @font-feature-valuesの記述子としてのフォントディスプレイの使用を提案して、開発者が @font-faceルールのディスプレイポリシーを設定できるようにすることに言及する価値があります。彼らの制御の直下。しかし、これはまだユーザーエージェントによって実装されていません。
最後の単語この記事では、Font-Displayによって実装されたさまざまな戦略の特定のユースケースについては議論していませんが、仕様はいくつかの明確な例を備えたユースケースを示しています。したがって、私がここで取り上げた基本に加えて、私が参照したリソースをもっと見る必要があります。 CSSフォントディスプレイとWebフォントレンダリングに関するよくある質問(FAQ)
CSSフォントディスプレイプロパティとは何ですか?なぜ重要なのか?まだ読み込まれています。このプロパティは、ウェブサイト上のユーザーエクスペリエンスに大きな影響を与えるため、重要です。フォントがロードに時間がかかりすぎると、テキストのレンダリングが遅れ、目に見えないテキストのFlash(FOIT)またはスタイルのないテキストのフラッシュ(FOUT)として知られる現象につながる可能性があります。 Font-Displayプロパティを使用することにより、開発者はこの動作を制御し、ユーザーエクスペリエンス全体を改善できます。CSS Font-Displayプロパティはどのように機能しますか?フォントが読み込まれているときとロードに失敗したときに、フォントがどのように動作するかを決定する一連のルールを提供します。 「自動」、「ブロック」、「スワップ」、「フォールバック」、「オプション」など、いくつかの値を受け入れます。これらの各値は異なる読み込み戦略を表し、開発者にニーズに最適なものを選択する柔軟性を与えます。ディスプレイ値は、異なるフォントロード戦略を表します。 「Auto」は、読み込み動作をブラウザに残します。 「ブロック」は、フォントに短いブロック期間と無限のスワップ期間を与えます。 「スワップ」は、フォントにゼロ秒ブロック期間と無限のスワップ期間を与えます。 「フォールバック」は、フォントに非常に短いブロック期間と短いスワップ期間を与えます。 「オプション」は、フォントにゼロ秒ブロック期間とゼロ秒スワップ期間を与えます。
コードにCSS font-displayプロパティを使用するには、 @font-faceルールに含める必要があります。例は次のとおりです。
@font-face {
font-family: 'myfont';
src:url( 'myfont.woff2')format( 'woff2');
font -display:swap;
}
この例では、font-displayプロパティは「スワップ」に設定されています。つまり、「myfont」が利用できない場合は、フォールバックフォントでテキストがすぐに表示されます。 >
CSS Font-Displayプロパティを使用することに制限や欠点はありますか?表示プロパティは、すべてのブラウザで完全にサポートされていないことです。たとえば、Internet Explorerや他のブラウザのいくつかの古いバージョンは、この機能をサポートしていません。さらに、「オプションの」値により、カスタムフォントが完全にスキップされる場合があり、ウェブサイトの視覚的な一貫性に影響する可能性があります。
CSS Font-Displayプロパティは、包括的なWebパフォーマンス戦略の1つのツールにすぎません。知覚された負荷速度を改善し、レイアウトシフトを防ぐことができますが、CSSやJavaScriptファイルのサイズを最小限に抑え、画像の最適化、コンテンツ配信ネットワーク(CDN)の使用など、他のパフォーマンス最適化手法と組み合わせて使用する必要があります。 。
以上がcss font-display:Web上でのフォントレンダリングの未来の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。