メインコンテンツへ移動

iconfont アイコンフォント

無料2015-08-18#CSS#Solution#iconfont的优缺点#制作生成iconfont库#管理维护图标字体#iconfont的兼容性#iconfont的性能优化#iconfont注意事项

iconfont アイコンフォントは非常に古い技術で、フラット UI で一般的です。本記事では iconfont の長所と短所、iconfont ライブラリの作成と生成、管理とメンテナンス、互換性、パフォーマンス最適化、および注意事項について詳しく説明します

no_mkd

一.iconfont の長所と短所

長所

  1. ベクトル性

    画面への適合(スケーリング)

  2. フォント性

    スタイル制御(色、影、さらには浮き出し)

  3. ファイルサイズが小さい

    通常 20-50KB で、画像よりもはるかに小さくなります。例えば typicons ライブラリには 308 個の icon があり、フォントファイルサイズは 59KB(woff)〜 147KB(svg)です

    アイコンファイルは通常 1.5KB/個(Sprite は総サイズを大きくするだけです)

  4. Sprite が不要で、修正が容易

    Sprite を使用する手間が省け、修正や交換が簡単です

短所

  1. 色の制限

    iconfont は単色またはグラデーションのみ可能で、複雑なアイコンにはこの技術を使用できません(多色 iconfont を実現する方法もありますが、互換性とコストが受け入れられません)

  2. FOUT(Flash of Unstyled Text)問題

    ブラウザはまずデフォルトフォントでレンダリングし、フォントファイルのダウンロード完了後にテキストコンテンツの一部をレンダリングするため、テキストに避けられないちらつきが発生します

  3. IE はページレンダリングをブロックします

    @font-face 宣言の前に script タグがある場合、IE はフォントファイルのダウンロードが完了するまで何もレンダリングしません

  4. パフォーマンス

    IE の問題が多く、IE と FF では @fontface が window.onload をブロックします。IE では使用の有無にかかわらずロードされ、フォントのロードエラー(長時間結果が返らない)发生时、IE は 10 分間待機します(その間白画面)。他のブラウザはデフォルトフォントでレンダリングするか、一時的にコンテンツを表示しません。ダウンロード待機中はビジーインジケーターが常にトリガーされます(ステータスバー、プログレスバー、アイコン、マウスポインター)

二.作成と生成

  1. [オプション手順]PS、png からパスをエクスポート

  2. AI、塗りつぶし、パスを閉じて svg として保存

  3. オンラインフォントジェネレーター

三.管理とメンテナンス

オンラインプラットフォームにアップロードし、リストビューを自動生成して管理を容易にします。例えばhttp://www.iconfont.cn/showProject?pid=26177

四.フォント形式と互換性

フォント形式

  • woff:W3C 推奨形式、最小サイズ、互換性は低い

    Android4.4+、IE9+

  • ttf:Win と Mac のデフォルトフォント形式

    Android4.1+、IE9+ 一部対応

  • eot:マイクロソフトが提案した、@fontface による OpenType フォントの埋め込みを許可

    Android 非対応、IOS 非対応、IE 非対応

  • svg:互換性は良いがサイズが大きい

    Android4.1+ 一部対応、IE9+

フォントファイルサイズ

20 個の icon、フォントファイルサイズはそれぞれ:

  • woff:7K

  • ttf:11K

  • eot:11K

  • svg:14K

互換性

  • IE:IE4 から eot 形式をサポート、IE9 から woff をサポート

  • webkit/safari:TrueType/OpenType(.ttf)、OpenType PS(.otf) をサポート、iOS4.2+ は.ttf をサポート、iOS 4.2 以下は SVG フォントのみサポート、Safari5.1+ から woff 形式をサポート

  • Chrome:webkit がサポートするものに加え、Chrome 6 から woff 形式をサポート

  • Firefox:.ttf と.otf をサポート、Firefox 3.6 から woff 形式をサポート

  • Opera:.ttf、.otf、.svg をサポート。Opera 11 から woff をサポート

  • iPad、iPhone および Android 3.0+ は SVG フォントをサポート

    こちらは caniuse の結論と差異があります

五.パフォーマンス最適化の原則

  • @font-face 定義をすべての script タグの前に配置する

  • 多くのフォントファイルがある場合、それらを複数のドメインに分散することを検討する

  • 使用していない @font-face 宣言を含めない——IE は使用の有無にかかわらずすべてロードします

  • フォントファイルを Gzip 圧縮し、将来の有効期限ヘッダー宣言を設定する

  • フォントファイルの後読み込み(body 終了タグの前に配置)を検討する、特に IE 向け(IE は 10 分間フォントをダウンロードし、その間ページがブロックされる)

@fontface パフォーマンス問題の詳細については【翻訳】@font-face とパフォーマンスをご覧ください

六.注意事項

1.FF は異ドメインのフォントをロードしない

同じドメインに配置するか、サーバーヘッダーを設定する

2.safair と chrome でフォントが太くなる

半ピクセルのギザギザが 1px にレンダリングされるため、css ルールを設定:-webkit-font-smoothing: antialiased;

3.PC の Chrome で深刻なギザギザ

エッジをぼかすだけでよく、css ルールを設定:-webkit-text-stroke-width: 0.2px;

七.結論

  1. iconfont の長所 > 短所、再利用性とメンテナンス性の利便性は魅力的です

  2. フォントライブラリ生成の主な作業量は png から svg への変換です

    UI チームが協力してくれれば簡単で、フォントライブラリ作成後は UI にもメリットがあり、デザイン作成がより容易になり、PS プラグインで iconfont を直接使用でき、icon を切り出す必要がありません

    (実際に cc、cs6 はサポートしておらず、プラグインの品質に疑問があります。プラグインが使用できない場合、UI デザインのアイコンと iconfont の対応が小さな問題になります

  3. フォントライブラリの管理は問題ではありません

    http://www.iconfont.cn/users/projectは非常に便利です

  4. 互換性は問題ではありません

    4 種類の形式をすべて配置すれば、互換性は十分です

  5. パフォーマンスはあまり良くありません

    しかし画像の Sprite と比較すれば十分良いです

コメント

コメントはまだありません

コメントを書く