画像、Flash、またはその他のグラフィックを使用せずにWebサイトにカスタムフォントを追加する方法はありますか?
たとえば、私は結婚式のウェブサイトで作業していて、そのテーマに適したフォントをたくさん見つけました。しかし、そのフォントをサーバーに追加する正しい方法が見つかりません。そして、CSSでそのフォントをHTMLに含めるにはどうすればよいですか?これはグラフィックなしで実行できますか?
画像、Flash、またはその他のグラフィックを使用せずにWebサイトにカスタムフォントを追加する方法はありますか?
たとえば、私は結婚式のウェブサイトで作業していて、そのテーマに適したフォントをたくさん見つけました。しかし、そのフォントをサーバーに追加する正しい方法が見つかりません。そして、CSSでそのフォントをHTMLに含めるにはどうすればよいですか?これはグラフィックなしで実行できますか?
回答:
これはCSSを介して行うことができます:
<style type="text/css">
@font-face {
font-family: "My Custom Font";
src: url(http://www.example.org/mycustomfont.ttf) format("truetype");
}
p.customfont {
font-family: "My Custom Font", Verdana, Tahoma;
}
</style>
<p class="customfont">Hello world!</p>
それはされ、通常のブラウザのすべてのためにサポートされますが、TrueTypeフォント、フォント(TTF)またはWebのオープンフォントフォーマット(WOFF)を使用する場合。
Google Web Fontsを介していくつかのフォントを追加できます。
技術的には、フォントはGoogleでホストされており、HTMLヘッダーでリンクします。そうすれば、CSSでそれらを自由に使用できます@font-face
(それについて読んでください)。
例えば:
では<head>
セクション:
<link href=' http://fonts.googleapis.com/css?family=Droid+Sans' rel='stylesheet' type='text/css'>
次にCSSで:
h1 { font-family: 'Droid Sans', arial, serif; }
ソリューションは非常に信頼できるようです(Smashing Magazineでも記事のタイトルに使用しています)。ただし、これまでにGoogleフォントディレクトリで利用できるフォントはそれほど多くありません。
進むには、@ font-face CSS宣言を使用します。これにより、作成者はオンラインフォントを指定してWebページにテキストを表示できます。作成者が独自のフォントを提供できるようにすることで、@ font-faceは、ユーザーが自分のコンピューターにインストールした限られた数のフォントに依存する必要をなくします。
次の表を見てください。
ご覧のとおり、主にブラウザー間の互換性のために、知っておく必要のある形式がいくつかあります。モバイルデバイスでのシナリオはそれほど異なりません。
1-完全なブラウザ互換性
これは、現時点で可能な限りサポートが可能な方法です。
@font-face {
font-family: 'MyWebFont';
src: url('webfont.eot'); /* IE9 Compat Modes */
src: url('webfont.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */
url('webfont.woff') format('woff'), /* Modern Browsers */
url('webfont.ttf') format('truetype'), /* Safari, Android, iOS */
url('webfont.svg#svgFontName') format('svg'); /* Legacy iOS */
}
2-ほとんどのブラウザ
物事はされWOFFに向かって大きくシフトし、おそらくに逃げることができるように、しかし:
@font-face {
font-family: 'MyWebFont';
src: url('myfont.woff') format('woff'), /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */
url('myfont.ttf') format('truetype'); /* Chrome 4+, Firefox 3.5, Opera 10+, Safari 3—5 */
}
3-最新のブラウザのみ
またはWOFFだけでも。
その後、次のように使用します。
body {
font-family: 'MyWebFont', Fallback, sans-serif;
}
これは主に、この機能の実装について知っておく必要があることです。このテーマについてさらに調査したい場合は、以下のリソースをご覧になることをお勧めします。私がここに置いたもののほとんどは以下から抽出されます
svgFontName
略ですか?フォントファミリー名に変更するか、そのままにしておくべきですか?
非標準フォントとは、標準形式のカスタムフォントを意味します。ここでは、その方法を示します。これは、これまでに確認したすべてのブラウザーで機能します。
@font-face {
font-family: TempestaSevenCondensed;
src: url("../fonts/pf_tempesta_seven_condensed.eot") /* EOT file for IE */
}
@font-face {
font-family: TempestaSevenCondensed;
src: url("../fonts/pf_tempesta_seven_condensed.ttf") /* TTF file for CSS3 browsers */
}
したがって、ttfフォントとeotフォントの両方が必要になります。オンラインで利用できるいくつかのツールは、変換を行うことができます。
しかし、標準以外の形式(ビットマップなど)でフォントを添付したい場合は、私はお手伝いできません。
Webサイトで非標準フォントを使用する最も簡単な方法は、sIFRを使用することです。
フォントを含むFlashオブジェクトを使用する必要がありますが、Flashがインストールされていない場合は、標準のテキスト/フォントにうまく分解されます。
スタイルはCSSで設定され、JavaScriptはテキストのFlash置換を設定します。
編集:(sIFRはプロジェクトに時間を追加し、メンテナンスが必要になる可能性があるため、非標準フォントには画像を使用することをお勧めします)。
@font-face
は素晴らしいアイデアだと思いますが、サポートされている場合ははるかに優れています。
IEのFont-face:Webフォントを機能させるという記事は、3つの主要なブラウザーすべてで動作することを述べています。
これが私が働いたサンプルです:http : //brendanjerwin.com/test_font.html
詳細については、「フォントの埋め込み」を参照してください。
Typeface.jsとCufonは、他の2つの興味深いオプションです。これらはJavaScriptコンポーネントであり、Internet Explorerを除くすべての新しいブラウザーの新しい<canvas>要素およびInternet ExplorerのVMLを介して、JSON形式(WebサイトでTrueTypeまたはOpenType形式から変換できます)で特別なフォントデータをレンダリングします。
(現在のところ)両方の主な問題は、テキストの選択が機能しないか、少なくともかなり不自然に機能することです。
それでも、それは見出しのために非常にいいです。本文...わからない。
そして、それは驚くほど高速です。
W3Cがこれを行うために推奨している手法は「埋め込み」と呼ばれ、3つの記事(フォントの埋め込み)で詳しく説明されています。私の限られた実験では、このプロセスがエラーを起こしやすく、マルチブラウザ環境で機能させるのに限られた成功しか収めていません。
SafariとInternet ExplorerはどちらもCSS @ font-faceルールをサポートしていますが、2つの異なる埋め込みフォントタイプをサポートしています。Firefoxは近いうちにAppleと同じタイプをサポートする予定です。SVGはフォントを埋め込むことができますが、プラグインなしではまだ広くサポートされていません。
私が見た中で最もポータブルな解決策は、JavaScript関数を使用して、見出しなどを、サーバー上で生成およびキャッシュされた画像で選択したフォントに置き換えることです-この方法では、テキストを更新するだけで、 Photoshopの周りのもの。
ASP.NETを使用している場合は、次のコマンドを使用して、サーバーにフォントを(インストールされているフォントベースに追加する場合のように)インストールすることなく、イメージベースのフォントを簡単に生成できます。
PrivateFontCollection pfont = new PrivateFontCollection();
pfont.AddFontFile(filename);
FontFamily ff = pfont.Families[0];
そして、そのフォントでに描画しGraphics
ます。
Internet Explorerでのみ機能するようですが、「html埋め込みフォント」をGoogleですばやく検索すると、http://www.spoono.com/html/tutorials/tutorial.php? id = 19が生成されます。
プラットフォームにとらわれないままにしたい場合(そしてそうすべきです!)、画像を使用するか、標準のフォントを使用する必要があります。
少し調べて、動的テキスト置換(2004-06-15に公開)を掘り下げました。
この手法では画像を使用しますが、「ハンズフリー」のようです。あなたはあなたのテキストを書き、あなたはその場であなたのためにいくつかの自動化されたスクリプトにページ上で自動化された検索と置換をさせます。
これにはいくつかの制限がありますが、私が見た他のすべてのものよりもおそらく簡単な選択肢の1つ(およびブラウザー互換性が高い)です。
このような実際のフォントへのリンクを提供するだけで、あなたは行くことができます
<!DOCTYPE html>
<html>
<head>
<link href='https://fonts.googleapis.com/css?family=Montserrat' rel='stylesheet'>
<style>
body {
font-family: 'Montserrat';font-size: 22px;
}
</style>
</head>
<body>
<h1>Montserrat</h1>
<p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit.</p>
</body>
</html>
Typeface.js JavaScriptの方法:
typeface.jsを使用すると、Webページにカスタムフォントを埋め込むことができるので、テキストを画像にレンダリングする必要がありません。
サイトのグラフィックテキストを目的のフォントで表示するために画像を作成したりフラッシュを使用したりする代わりに、訪問者がローカルにフォントをインストールしているかのように、typeface.jsを使用してプレーンHTMLおよびCSSで書き込むことができます。
記事を参照してください。50美しいタイポグラフィに役立つデザインツール別の方法。
私はCufonのみを使用しました。信頼性が高く、非常に使いやすいと感じたので、こだわりました。
フォントのファイルがある場合は、他のブラウザ用にそのフォントのフォーマットをさらに追加する必要があります。
この目的のために、私はFontsquirrelのようなフォントジェネレーターを使用します。これは、すべてのフォント形式とその@ font-face CSSを提供します。CSSファイルにドラッグアンドドロップするだけです。
@font-face
はより広くサポートされるようになり、一般的な使用が推奨されています。IEが他のブラウザとは異なるフォーマットのフォントを必要とすることを知っておく必要があります。参照してくださいstackoverflow.com/questions/2219916/is-font-face-usable-now