アイコンフォントにicomoonを使用しており、ChromeおよびFirefoxでは正常に動作しますが、IE11では表示されません...時々。最初のページの読み込みで動作するようです。キャッシュをクリアしてもキャッシュはリセットされないようです。この問題は、他のIEバージョンで発生する可能性があります。
@ font-faceは次のとおりです。
@font-face {
font-family: 'icon';
src:url('fonts/icon.eot?-3q3vo5');
src:url('fonts/icon.eot?#iefix-3q3vo5') format('embedded-opentype'),
url('fonts/icon.woff?-3q3vo5') format('woff'),
url('fonts/icon.ttf?-3q3vo5') format('truetype'),
url('fonts/icon.svg?-3q3vo5#rezku') format('svg');
font-weight: normal;
font-style: normal;
}
[class^="icon-"], [class*=" icon-"] {
font-family: 'icon';
speak: none;
font-style: normal;
font-weight: normal;
font-variant: normal;
text-transform: none;
line-height: 1;
/* Better Font Rendering =========== */
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
.icon-alphabet:before {
content: "\e600";
}
/* etc etc etc */
しかし、ここで奇妙になります。開発者ツールを見ると、フォントのHTTPリクエストが送信されていますが、受信しているのは数百バイトだけです(おそらくヘッダーだけです)。
ただし、HTTP応答では、コンテンツの長さが数キロバイトとして正しくリストされます。
「応答本文」タブには「表示するデータがありません」と表示されます。
ネットワークフォントのスクリーンショットで、Googleフォントがこのように動作していないことがわかります。
ロケーションバーにURLを貼り付けると、ファイル全体がダウンロードされます。
同様の問題に遭遇し、上記のスクリーンショットから、応答には「no-store」のCache-Controlヘッダーがあります。 IEはキャッシュとフォントに問題があるようです。
「Cache-Control:no-store」ヘッダーと「Pragma:no-cache」ヘッダーの両方を削除すると、アイコンフォントが再び表示されるようになりました。
まったく同じ問題を調査し、オンラインで投稿されたさまざまなソリューションを検証した後、次のトラブルシューティングリストを作成しました。
Cache-Control: no-store, no-cache
_または_Pragma: no-cache
_ヘッダー、または過去の日付を持つExpires
ヘッダーを削除します。 IEでVary
ヘッダーには、_Accept-Encoding
_、_User-Agent
_、Host
または_Accept-Language
_以外に設定されている場合、IEのトリックがあります。 _は何もキャッシュしません、unlessETAG
ヘッダーも存在します( このMSDNブログ投稿 を参照)。Content-Type: text/plain
_)に_eot, woff, woff2
_を設定します。使用する適切なコンテンツタイプについては、 この回答 をご覧ください。display: block
_または_display: inline-block
_を使用してください。同様の問題に直面しましたが、Bootstrap=フォントアイコン(Glyphicons)を使用しています。これが機能する場合は試してみてください。
(一般的にWindows 10)IE-11の設定は、外部フォントをダウンロードせず、Windowsで使用可能なフォントのみを使用するように変更されました。これがデフォルトの動作です。
ただし、IEでこの設定を変更して、外部フォントをダウンロードできるようにすることができます。IEで実行する手順は次のとおりです。設定>>インターネットオプション>>セキュリティ
[インターネット](または使用している可能性のあるゾーン)>> [レベルのカスタマイズ...]をクリックします
次に「セキュリティ設定」の「フォントのダウンロード」を有効にします。デフォルトでは無効になっています。
ページを更新
私は同様の問題を抱えていたが、それはIE特定のdisplay
とposition
の設定がiconfontsと組み合わせて困難なことによって引き起こされるようだ。
通常は次を使用して動作します。
element:before {
display:block;
position: absolute;
... your styles ...
}
私の場合、.eotフォントファイルが破損していました。新しいもの(+新しい.cssスタイル)を生成し、問題を修正しました。それを試してみてください。
PS。 IE @ font-faceでEOTをサポートしていることを確認してください。例:
@font-face {
font-family: "fontName";
src:url("../../src/theme/fonts/fontName.eot");
src:url("../../src/theme/fonts/fontName.eot?#iefix") format("embedded-opentype"),
url("../../src/theme/fonts/fontName.woff") format("woff"),
url("../../src/theme/fonts/fontName.ttf") format("truetype"),
url("../../src/theme/fonts/fontName.svg#fontName") format("svg");
font-weight: normal;
font-style: normal;
}
構文は正しいですが、どのコンバーターを使用して.tffから.eofに変換したかに問題がある可能性があります。この問題全般の詳細については、こちらの記事をご覧ください http://www.iandevlin.com/blog/2009/12/webdev/adventures-with-font-face
それまでの間、Googleフォントでホストされているフォントを使用して問題をテストしてみてください。これは、Googleがブラウザ間の互換性をシームレスに処理するためです。 Googleフォントが機能することが判明した場合、フォントの変換方法に問題があることがわかり、別のフォントを試す必要があります。私が理解していることから Font Squirrel は、クロスブラウザ互換のフォントを生成するのに非常に優れています。これが幸運に役立つことを願っています
基本的に、MicrosoftはSpriteシートの使用に戻らなければなりません。