アクセシビリティ
デベロッパーリソース

CSSでのフォント指定について

鷹野雅弘(Masahiro Takano)

株式会社スイッチ

この記事では、Adobe® Dreamweaver® CS3を使ってフォントやフォントサイズの指定を行う方法と、OS/ブラウザでの対応についての実験をご紹介します。

必要ソフトウェア

この記事では、以下のソフトウェアを使用しています。

Dreamweaver CS3

フォント指定

Dreamweaverで、CSSを使ってフォント指定を行う際、迷わず「MS Pゴシック, Osaka, ヒラギノ角ゴ Pro W3」を指定している方が多いのではないかと思います。

図1

これは「MS Pゴシック」がなかったら「Osaka」、「Osaka」がなかったら「ヒラギノ角ゴ Pro W3」のように指定する手法ですが、今回はこれが本当に正しいのか、について考えてみます。

「MS Pゴシック」というフォント

「MS Pゴシック」と「MS ゴシック」というフォントがありますが、この違いである「P」はプロポーショナルを意味します。日本語フォントはバウンディングボックスという正方形内にデザインされていますが、このバウンディングボックスを無視して文字の形状に応じて文字幅を調整するのが「MS Pゴシック」です。
なんだかよさげに聞こえますが、ブラウザなど画面上で文字を読んでいくには字間がつまり過ぎていると感じる方もいるでしょう。

図2

[ブロック]カテゴリの[文字間隔]に「1ピクセル」のように入力することで、字間を調整することができます。 CSSのコードは「letter-spacing: 1px;」のように記述されます。

図3 図4

ちょっとこぶりな英数字

「MS Pゴシック」では英数字が少し「こぶり」です。 [タイプ]カテゴリの[フォント]に「Verdana」を加え、「Verdana, "MS Pゴシック", Osaka, "ヒラギノ角ゴ Pro W3"」のように記述すれば、英数字のみ「Verdana」で表示されるようになります。

図5

字間調整を行っている場合、若干、英単語の字間が開きすぎるような感はありますが、小さめの文字を読むときには、視認性が高まるでしょう。
とりあえず、Windows環境ではフォント指定(+字間調整)は、これで読みやすくなりました。

図6

ただし、欧文フォントと組み合わせるとベースラインが合わないため、リンク箇所などのアンダーラインが揃えるために「vertical-align:baseline;」を設定しておくとよいでしょう。

図7

Macに「MS Pゴシック」?

ここまでの指定をMacで表示してみます。私のMacではFirefoxで見ると「MS Pゴシック」で表示されてしまいます。
2008年1月にリリースされた「Office 2008 for Mac」や、その前バージョンである「Office 2004 for Mac」をインストールすると、「MS Pゴシック」や「MSゴシック」、「MS P明朝」などのMS系のフォントがシステムに組み込まれてしまうのです。
購入するMacによっては、Officeのテストドライブ(デモ版)が入っており、同様に「MS Pゴシック」で表示されてしまいます。
「MS Pゴシック」で何か不都合が??? 実はあるのです。日本語のプロポーショナルフォントという概念を持たないMacでは「MS Pゴシック」を表示すると、「く」のように文字幅の狭い文字や()や「」などのカッコ類の送り(文字位置)が不自然になってしまいます。

図8

対応策として「Verdana, "ヒラギノ角ゴ Pro W3", "MS Pゴシック", Osaka」のように、「ヒラギノ角ゴ Pro W」を「MS Pゴシック」より前に出しておけばよいでしょう。

Macでは字間調整は不要

プロポーショナルという概念がないMacでは、文字をそのまま並べた状態で自然です。もちろん、好みにもよりますが、字間調整は不要でしょう。
このような場合には、セレクタの前に「* html 」をつけるルールを作成し、WindowsのInternet Explorerのみに異なる指定を行います。

body {
	font-family: "ヒラギノ角ゴ Pro W3", Osaka ;
}
* html body {
	font-family: Verdana, "MS Pゴシック", Osaka;
	letter-spacing: 1px;
}

日本語フォントを認識できないSafari

「"MS Pゴシック", Osaka, "ヒラギノ角ゴ Pro W3"」のようにフォントを指定すると、Safariでは日本語フォントを認識できないため、「MS Pゴシック」が無視され、次候補である「Osaka」で表示されます。

図9

Mac OS Xでの「Osaka」フォントは、アウトラインフォントとして扱われますが、ウエイトが重めに表示されてしまうので、文章内で強調などのために太字に設定したい箇所とのメリハリがつきにくいという欠点があります。
これを回避するためには「"Hiragino Kaku Gothic Pro", "ヒラギノ角ゴ Pro W3", Osaka」のようにアルファベット表記を加えます。

図10

総称ファミリー名(generic-family)

Firefoxでは、"Hiragino Kaku Gothic Pro"を認識しないため、"ヒラギノ角ゴ Pro W3"を併記しておく必要があります。
最近では、ブラウザ以外のデバイス対応という課題が出てきました。ヒラギノ角ゴ Pro W3も、Osakaも、MS P ゴシックもないデバイスのために「sans-serif」のように「総称ファミリー名(generic-family)」を併記しておくとよいでしょう。

図11

「sans-serif」は日本語でいう「ゴシック体」、「serif」は「明朝体」を指します。
「font-family: sans-serif;」のように指定すれば、とりあえずゴシック体で表示されますが、Windows環境では、半角の円マークがバックスラッシュで表示されてしまいますので、Windows用には避けるべきでしょう。

ここまでのまとめ

Macは「ヒラギノ角ゴ Pro W3」で表示、WindowsのInternet Explorerは「MS Pゴシック」、ただし英数字は「Verdana」、また、字間を少し空ける、といった目的をかなえるためには、次のように指定します。

body {
	font-family: sans-serif;
}
* html body {
	font-family: Verdana, "MS Pゴシック", sans-serif;
	letter-spacing: 1px;
	vertical-align:baseline;
}

字間調整や英数字の組み替えが不要であれば、次のようにまとめて記述します。

body {
  font-family: "Hiragino Kaku Gothic Pro W3", "ヒラギノ角ゴ Pro W3", Osaka, "MS P Gothic", "MS Pゴシック", sans-serif;
}

アップルのサイトでは「Lucida Grande」というGill Sansぽいフォントを組み合わせているようです。実際の記述は異なりますが、ここまでの流れと組み合わせると下記のような記述になります。

body {
	font-family: "Lucida Grande", sans-serif;
}
* html body {
	font-family: Verdana, "MS Pゴシック", sans-serif;
	letter-spacing: 1px;
	vertical-align:baseline;
}

Dreamweaver CS3のデザインビューでは、CSSで日本語フォントを指定すると行間が開いてしまいます。上記のように指定すれば、これを回避できます。

図12

メイリオへの対応

Windows Vistaでは、デフォルトのフォントに「メイリオ」が採用されました。「Verdana」の日本語版ともいうべきデザインの書体です。 当然、Internet Explorer 7のデフォルトフォントも「メイリオ」が採用されると思いきや、Internet Explorer 7では「MS P ゴシック」がデフォルトです。

図13

「メイリオ」のデザインが同じサイズでも横幅が広いため「メイリオ」で表示すると、レイアウト崩れが起きてしまうサイトが少なくないという配慮からInternet Explorer 7での採用を見送ったようです。

さて、メイリオを適用させたい場合には、次のように「MS P ゴシック」よりも前に「メイリオ」を指定すればよいのです。

body {
  font-family: "Hiragino Kaku Gothic Pro W3", "ヒラギノ角ゴ Pro W3", Meiryo, "メイリオ", "MS P Gothic", "MS Pゴシック", sans-serif;
}
図14

Windows VistaではInternet Explorer 7のみですが、Windows XPにInternet Explorer 7をインストールしている場合、またはWindows XPに「メイリオ」のみをインストールしているなどの環境が考えられます。

「メイリオ」の場合、「Verdana」などの欧文フォントを組み合わせる必要もありませんし、また、字間を調整する必要がもありませんので、次のように記述すれば、Windows XPのInternet Explorer 6では「MS P ゴシック」、Internet Explorer 7(Windows XP/Windows Vista)では「メイリオ」で表示されます。

body {
	font-family: "Lucida Grande", sans-serif;
}
* html body {
	font-family: Verdana, "MS Pゴシック", sans-serif;
	letter-spacing: 1px;
}
*:first-child+html body { 
	font-family: 'メイリオ', Meiryo, sans-serif;
}

なお、Mac環境では「Office 2008 for Mac」のインストール時に「メイリオ」が組み込まれます。

フォントサイズ

次にフォントサイズです。
エラスティックレイアウト、マルチデバイス対応などのトレンドを受けて、レイアウトにもemが使われることもありますが、やはりPCブラウザ上ではピクセルを念頭にデザインしている方がほとんどでしょう。となると、フォントサイズもピクセル指定するのがシンプルです。

Internet Explorerのテキストズーム

Windows版のInternet Explorerでは、フォントサイズをピクセル指定するとテキストズームに対応しないという仕様になっています。つまり、ブラウザの[表示]メニューから[文字のサイズ]→[中]を[大]に変更しても文字サイズが変わらないのです。

サイトのコンテンツ内で文字サイズ変更ボタンをもうけ、JavaScriptとCSSの組み合わせによってこれを回避する方法をとっているところもありますが、JavaScriptがオフの状態などには対応できないません。

Alternative Style: Working With Alternate Style Sheets(A List Apart)
http://www.alistapart.com/articles/alternate/

キーワード指定

「medium」「small」のように、フォント指定にキーワード指定を行うことで、Windows版Internet Explorerのテキストズーム問題を回避できます。

body {
	font-size: medium;
}

ただし、DOCTYPEによって基準となるフォントサイズが異なるため、キーワード指定を行う場合、そのことを視野に入れる必要があります。 結論からいうと、DOCTYPE宣言を入れてキーワード指定を行うと、Windows版Internet Explorerでは、ひとまわり大きく表示されてしまいます。

図15

パーセント指定

(多くの)ブラウザのデフォルトのフォントサイズは、16ピクセルであるため、「font-size: 75%;」と指定すれば、12ピクセル相当で表示されます。この場合にはDOCTYPEスイッチの影響も受けません。

body { 
	font-size: 75%;
}

MacのFirefox

過去にはMacとWindowsでブラウザのデフォルトフォントサイズが異なるという問題がありましたが、Internet Explorer for Macが16ピクセルを採用して以来、その問題はとりあえず、クリアされています。
ところが、Mac版のFirefoxのみ、デフォルトのフォントサイズに「14ピクセル」を採用しているため、アドビのサイトをはじめ、パーセント指定を行っているサイトでは、ひとまわり文字が小さく表示されてしまいます。
文字が小さい場合には、キーボードショートカットを使ってテキストズームを行ってもよいのですが、ぱっと見た目に「文字が小さい」という理由で、サイトから遠ざかってしまうユーザーもいるはずです。
下記のように記述することで、Windows版Internet Explorer以外には、ピクセル指定を行うことが可能です。

body {
	font-size: 12px;
}

/* for WinIE6*/

* html body { 
	font-size: 75%;
}

まとめ

フォントおよびフォントサイズの指定について、いろいろと取り上げてきました。中には「私は違う意見を持っている」という箇所があったと思いますが、下記についてはおさえておきましょう。

ご参考までに私の中では、次のように落ち着いています。

body {
	font-size: 14px;
	font-family:  "Lucida Grande", sans-serif;
}

/* for WinIE6*/

* html body {
	font-size: 75%;
	font-family: Verdana, "MS P ゴシック", sans-serif;
	letter-spacing: 1px;
	vertical-align:baseline;
}

/* for WinIE7*/

*:first-child+html body { 
	font-size: 75%;
	font-family: 'メイリオ', Meiryo, sans-serif;
}

「文章を読む」という行為が大きなウエイトを占めるWebサイトの閲覧の中で、読みやすさを高める文字の設定について、

参照:

Yahoo! UI Library: Fonts CSS
http://developer.yahoo.com/yui/fonts/

CSSのfont-family:ヒラギノとMS Pゴシックとメイリオの悩ましい関係 : webデザイナーのナナメガキ
http://loconet.web2.jp/blog/archives/2007/02/cssfontfamily.html

著者について

鷹野雅弘(Masahiro Takano)

Webサイトの構築やコンサルティングを行う傍ら、WebやDTPに関するトレーニングや執筆活動を行う。
著書に『できるクリエーターDreamweaver独習ナビ』(インプレス)、『Adobe Dreamweaver CS3 Essential Book』(毎日コミュニケーションズ)など、編著書に『Dreamweaverプロフェッショナル・スタイル[CS3対応]』など。
CSS Niteを主宰。