CSS @ font-face-「src:local( '☺')」はどういう意味ですか?


133

私は@font-face初めて使用して、fontsquirrelからフォントキットをダウンロードしました

彼らが私のCSSに挿入することを推奨するコードは次のとおりです。

@font-face {
    font-family: 'junctionregularRegular';
    src: url('Junction-webfont.eot');
    src: local('☺'), 
        url('Junction-webfont.woff') format('woff'), 
        url('Junction-webfont.ttf') format('truetype'), 
        url('Junction-webfont.svg#webfontoNEpZXy2') format('svg');
}

さて、にこにこ顔が困ってます。しかし、src内のURLの数もそうです-なぜそれらはそれほど多くのファイルを推奨し、ページがレンダリングされるときにそれらすべてがブラウザーに送信されるのですか?.ttf以外をすべて削除することに害はありますか?

回答:


94

font-squirrelのfont-faceジェネレータでメモを読むと、それがpaul irishの落とし穴だったことがわかります。

これが彼のブログ投稿からの抜粋です。


そして、@font-face構文について

私は今、元の防弾構文よりも防弾スマイリーのバリエーションをお勧めします。

@font-face {
  font-family: 'Graublau Web';
  src: url('GraublauWeb.eot');
  src: local('☺'),
       url('GraublauWeb.woff') format('woff'), url('GraublauWeb.ttf') format('truetype');
}

防弾ポストから:

はい、それはにこやかな顔です。OpenType仕様は、2バイトのUnicode文字がMacのフォント名ではまったく機能しないことを示しているため、誰かが実際にそのような名前のフォントをリリースする可能性が低くなります。

スマイリーがより良い解決策である理由はいくつかあります:

  • Webkit + Font Managementソフトウェアは、グリフをAブロックに変換するなど、ローカル参照を混乱させる可能性があります。

  • OS Xでは、フォント管理ソフトウェアがシステム設定を変更して、ライブラリ/フォント以外からアクセス可能なlocal()フォントにアクセスしようとするとダイアログが表示される場合があります。私の防弾ポストの詳細。Font Explorer Xは、Firefoxの他のものを台無しにすることでも知られています。

  • ありそうもないことですが、思っているものとは完全に異なるlocal()フォントを参照することもできます。(異なるフォントの同じタイプの投稿、同じ名前)少なくともリスクはあります。ブラウザとホストマシンの両方にタイプの制御権を譲ります。このリスクは、フォントのダウンロードを回避するメリットにはならないかもしれません。

これらはすべてかなりのケースの問題ですが、検討する価値があります。


12
どうもありがとう☺ 今は明らかです-私はnicewebtype.comでこの記事を見つけました。他のすべての質問にも答えます
stephenmurdoch

9
要するに、そのコードのローカル部分は「このフォントはローカルでXと呼ばれています」であり、スマイリーを使用して、ブラウザが同じ名前の間違ったフォントを使用しないようにします(上記の理由により)。nice :)
アベリト

3
実際にlocal()声明が必要ですか?冗長ですか?ブラウザはurl()それなしであなたの最初を使うべきではありませんか?
Simon East

Chrome開発ツールでcssソースを表示すると、スマイリーフェイスは次のように表示されます。
Anthony

1
@Simon:IE6-8(リンクされたブログ投稿を参照)をサポートするためのローカルステートメントがあるので、これらのブラウザーについて気にしない限り、必要です。
Stijn de Witt 2014

34

local(☺︎)は、IE6-8が使用できないフォントをダウンロードしないようにするcssハックです(EOT形式のフォントしか使用できません)。

説明:CSSカスケードでは、最後のsrcプロパティが優先されます。つまり、CSSは下から上に解析されます。local(☺︎)は、IEが使用できないフォントをダウンロードする帯域幅を浪費することなく、下部のsrcをスキップし、代わりに直接フォントに移動します.eotフォーマット(質問の上記の行で定義)のます。スマイリーは、その名前(文字の組み合わせ)を持つローカルフォントが存在しないことを確認するためだけのものです。

詳細はこちら:http : //nicewebtype.com/notes/2009/10/30/how-to-use-css-font-face/


-3

@ font-face最後のsrcプロパティはCSSカスケードで優先されます。つまり、CSSは下から上に解析されます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.