[解決済み] CSSの@font-faceがFirefoxで機能せず、ChromeとIEで機能する。
質問
以下のコードは、Google Chromeのベータ版とIE 7で動作します。しかし、Firefoxでは問題があるようです。私は、Firefoxがクロスドメインのインポートについてあまりフレンドリーではないことを知っているので、私のCSSファイルが含まれている方法の問題であることを疑っています。
しかし、これはすべて静的なHTMLであり、クロスドメインであることは問わない。
私のlanding-page.htmlでは、このようにCSSのインポートを行っています。
<link rel="stylesheet" href="../css/main.css" type="text/css" media="screen, projection" />
main.cssの中に、もう一つ、こんな感じでimportしています。
@import url("reset.css");
@import url("style.css");
@import url("type.css");
で、type.cssの中で以下のように宣言しています。
@font-face {
font-family: "DroidSerif Regular";
src: url("font/droidserif-regular-webfont.eot");
src: local("DroidSerif Regular"),
url("font/droidserif-regular-webfont.woff") format("woff"),
url("font/droidserif-regular-webfont.ttf") format("truetype"),
url("font/droidserif-regular-webfont.svg#webfontpB9xBi8Q") format("svg");
font-weight: normal; font-style: normal; }
@font-face {
font-family: "DroidSerif Bold";
src: url("font/droidserif-bold-webfont.eot");
src: local("DroidSerif Bold"),
url("font/droidserif-bold-webfont.woff") format("woff"),
url("font/droidserif-bold-webfont.ttf") format("truetype"),
url("font/droidserif-bold-webfont.svg#webfontpB9xBi8Q") format("svg");
font-weight: normal; font-style: normal; }
body { font-family: "DroidSerif Regular", serif; }
h1 { font-weight: bold; font-family: "DroidSerif Bold", serif; }
type.cssと同じ場所に"font"というディレクトリを持っています。このフォント・ディレクトリには、すべてのwoff/ttf/svgファイルなどが含まれています。
この件では困っています。 ChromeとIEでは動作するが、Firefoxでは動作しない . どうしてこんなことが可能なのでしょうか?何が足りないのでしょうか?
解決方法は?
ローカルでサイトを運営する (
file:///
)
Firefoxは、非常に厳格なquot;ファイルURI origin"を備えています(
file:///
) のポリシーがデフォルトで設定されています。他のブラウザと同じように動作させるには
about:config
でフィルタリングします。
fileuri
を選択し、次のプリファレンスをトグルします。
security.fileuri.strict_origin_policy
に設定します。 虚偽 で、異なるパスレベルにわたってローカルのフォントリソースを読み込むことができるはずです。
パブリッシュド・サイト
下のコメントにあるように、サイトを展開した後にこの問題が発生した場合、追加のヘッダーを追加して、問題がクロスドメインの問題として構成されるかどうかを確認することができます。相対パスを指定しているので、そうすべきではないですが、とにかく試してみてください。.htaccess ファイルに、要求された各 .ttf/.otf/.eot ファイルに追加のヘッダーを送信するよう指定してください。
<FilesMatch "\.(ttf|otf|eot)$">
<IfModule mod_headers.c>
Header set Access-Control-Allow-Origin "*"
</IfModule>
</FilesMatch>
正直なところ、この方法で何か変わるとは思っていませんが、とても簡単なので試してみる価値はあるでしょう。 base64エンコーディング をフォントの書体に使うと、不格好ですが、これもうまくいくかもしれません。
素敵なまとめがあります こちら
関連
-
[CSSチュートリアル】Pure CSSカスタム複数行抜け問題(原理から実装まで)
-
[CSSチュートリアル]z-indexの違い。cssのz-index: 0とz-index: autoの違い。
-
[css3]css3におけるtransformプロパティの4つの機能
-
[css3]ピュアCSS3でdivのinとoutの効果を順番に実現する
-
[CSSチュートリアル】CSSのfloatとunfloatについて
-
[CSSチュートリアル】CSSカウンターを使った数字の並びの美化方法
-
[CSSチュートリアル】background-positionプロパティのパーセンテージ値の使い方を探る
-
[ブラウザ互換性チュートリアル]IE9でのネイティブページの互換性問題の解決方法について
-
[CSSチュートリアル】CSSでマウスの位置をマッピングし、マウスの動きでページ要素を制御する効果を実現する(コード例)
-
[解決済み] CSSでFirefoxだけをターゲットにする
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[CSSチュートリアル】 css border add four corners コード
-
[CSSチュートリアル]z-indexの違い。cssのz-index: 0とz-index: autoの違い。
-
[css3]css3は、3つの方法のサンプルコードのテキストの点滅効果を達成するために
-
[CSSチュートリアル】新しいCSS:whereと:is擬似クラス関数とは?
-
[CSSチュートリアル】CSSで実現するイメージマッピングメソッド
-
[css3] scss変数の値を実行時に変更するcss3 var()の使用方法を説明します。
-
[CSSチュートリアル】ピュアCSSでDIVホバーを実現するサンプルコード(固定位置編)
-
[CSSチュートリアル】ピュアCSSで作るスクロールシャドウ効果
-
[css3] CSS3を使ってヘッダーアニメーション効果を作成する
-
[解決済み] Amazon S3 CORS (Cross-Origin Resource Sharing)とFirefoxのクロスドメインフォントローディング