Category : XHTML/CSS
すぐに使えそうなネガティブマージン | CSSファイルの分割 
IEで指定どおりのfont-sizeにならない
2008-05-18
0
0
XHTML/CSS
CSS, font-size

IE との兼ね合いで,font-size は%で指定しておくのが,いちばん無難だと思うのですが,IE6, 7 にちょっと痛いバグがありました。
小さなサイズの文字が指定どおりの大きさにならないのです。
11px以下のフォントが指定より大きくなる
まず,font-size のページを IE6 または IE7 でご覧ください。

順にフォントサイズが小さくなっていくはずなのですが,74%から72%あたりの日本語のフォントサイズが一旦大きくなっています。その後71%から 60%のところまで,日本語フォントはサイズが変わっていません。
FIrefox の場合と比べると,よく分かるかもしれません。

%で指定された font-size は,最終的にpxに変換され,端数処理して整数値になったものが表示されます。IEの場合,11.5px以上12px未満になるところは,本来12pxで表示されるはずですが,13pxになっています。9.5px以上11.5px未満のところは,すべて12pxで表示されています。
emで指定した場合も同様の結果になりました。
フォントサイズを11px以下にすることの是非も少々気になりますが...。
解決法1:UTF-8にしない
まず,文字コードをUTF-8以外の日本語コード,Shift_JISやEUC-JPにすることで解決します。
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS" />
しかし,XHTMLでXML宣言を省略する場合(文字コードがUTF-8なら省略可)もあるし,最近はUTF-8が主流になりつつある状況を考えると,あまり好ましい方法とは言えません。
解決法2:日本語フォントを指定する
font-family で最初に日本語フォントを指定することでも解決します。(英字フォントの後に日本語フォントを指定した場合は解決しないようです)
個人的には,特別な事情がない限り,font-family に特定のフォントを指定するのは「余計なお世話」という感じもします。11px以下になるところにだけ,次のように指定するのがよいかもしれません。
div#footer ul.nav {
font-size: 71%;
}
* html div#footer ul.nav {
font-family: 'MS Pゴシック', sans-serif;
}
*:first-child+html div#footer ul.nav {
font-family: 'メイリオ', sans-serif;
}
12pxで表示したいときは,pxに変換したとき12px以上12.5px未満になる値を指定しておけば大丈夫です。
参考
font-size指定については,以下も参考にしてください。
Trackback (0)
Trackback URL :
http://blog.d-spica.com/MT/mt-tb.cgi/29
Add Comment
Search
XHTML/CSS Category Entries
- table と caption の margin
- label のススメ
- CSSの初期化ファイル
- nth-child() 疑似クラスを試してみる
- CSSファイルの分割
- IEで指定どおりのfont-sizeにならない
- すぐに使えそうなネガティブマージン
- dtをfloatする場合の注意点
- Re: CSSによるデザインワークと相性のよいHTMLって?
- flaotを解除する3つの方法
- カレンダーをリストでマークアップ
- IE6, 7 そして 8
- idの命名に迷ったら
- CSSの初期化
- h1をサイトタイトルにする理由
- classをどの要素にふるか
- li要素にdl要素を入れてみる
- 画像置換の問題点
- id="header"で問題ないのでは
- font-size指定
- clearfixでfloatを解除
- サイト全体に連なるh1〜h6
- ul,liでメニューをマークアップ
- dlで写真をマークアップ
- 見出しの階層をちゃんとする
- サイトタイトルを画像にしたら

Comments (0)