TopicPath: Home / CSS / フォントサイズに関するCSSハック

フォントサイズに関するCSSハック

Date:
2007.01.20 (Sat) 22:17
Category:
CSS

フォントサイズを指定する際、絶対単位を使う人は少ないと思います。絶対単位で指定すると、IEでフォントサイズの変更ができなくなるためです。そこで、フォントサイズに関するCSSハックをまとめてみました。

今まではユニバーサルセレクタですべてのフォントサイズを100%に揃え、そこを基点に指定を行っていました。

* {
    font-size: 100%;
}
p {
    font-size: 80%;
}

これでも問題はないのですが、巷(?)ではハックを使って指定する人が多いみたいです。

body {
    font-size: 13px; /* モダンブラウザ向け */
    _font-size: x-small; /* IE向け */
}

この方法では、1行目でIE以外のブラウザに13pxを適用させ、IEにはアンダースコアハックで別指定を行っています。!importantハックを使っても同じことができます。

body {
    font-size: 13px !important; /* モダンブラウザ向け */
    font-size: x-small; /* IE向け */
}

これで一件落着かと思いきや、IE 7でつまづきます。IE 7では(バグが修正されたため)これらのハックが効かず、13pxの値を適用してしまいます。しかし、絶対単位で指定するとフォントサイズが変更できないバグはそのままです。要するに、IE 7ではフォントサイズの変更ができなくなるのです。

これを解決するにはアスタリスクハックを使います。

body {
    font-size: 13px; /* モダンブラウザ向け */
    *font-size: small; /* IE 7向け */
    *font: x-small; /* IE 6以下 */
}

1行目はモダンブラウザに対する指定で、2行目でIEに別指定を行います(この時点では、すべてのIEが読み込みます)。次に3行目で、IE 6以下の指定を行い、samllを上書きしx-smallを適用させます。

ショートハンドであるfontプロパティは、font-sizeとfont-familyの値は必須です。よって、3行目の指定は不正なプロパティとなり、仕様に準拠したブラウザでは無視されます。なので、IE 6の互換モードでは上記の不正なプロパティを読み込み、適用されるわけです(IE 6でも標準準拠モードでは無視します)。

ちなみに、これらのハックは文法違反です。気になる人は、文法違反にならないハックを使いましょう。たとえば、こんな感じです。

body {
    font-size: small !important; /* IE 7向け */
    font-size: x-small; /* IE 6以下 */
}
html>/**/body {
    font-size: 13px; /* モダンブラウザ向け */
}

この方法だと文法違反にはなりませんが、ルールセットが増えて管理が大変になります。好みで使い分けてください。

※pxは絶対単位ではありませんが、ほとんどのブラウザで絶対単位として解釈されます。

Tag

, ,

  • Comment: 3
  • Trackback: 4

Comment

rさんのコメント

もう知ってるかもしれませんが、雑誌「Web Designing」2月号でCSSについて簡単にまとめられていたので、復習にはちょうどいいかもしれません。ハックのことも載っていましたよ。

2007.01.21 (Sun) 09:19

ねこぜさんのコメント

アスタリスクを利用したのはYahooUIとおなじですね。

2007.01.21 (Sun) 18:03

reaさんのコメント

> rさん
2月号はまだ購入していないので、明日さっそく買いたいと思います。

> ねこぜさん
そうですね。Yahoo!のfont.cssを参考にしました。

2007.01.21 (Sun) 20:30

コメントフォーム

メールアドレスの入力は必須となっていますが、公開されることはありません。また、コメントを表示する前に、管理人の承認が必要になることがあります。

Trackback

トラックバックURL: http://realog.org/mt/mt-tb.cgi/17

CSS でフォントサイズを統一&サイズ変更できる指定方法 from Bowz::Weblog

本文を 12 ピクセル相当の大きさで表示すべく、font-size:75%; で指定されたページを...

Tracked on 2007.02.22 (Thu) 14:24

cssハックでフォントサイズを揃える from TREE-TREE

文字サイズを相対指定するとブラウザによってだいぶ見た目の印象が違います。 特にsafariが小さくて気になっていました。僕はsafariがセカンドブ...

Tracked on 2007.06.24 (Sun) 20:28

フォントサイズ指定方法の検証 from blog in a fog

このところずっと各ブラウザ間で差異の出ないフォントサイズの指定方法について検証していたんだけど、やっとその解らしきものを発見。

Tracked on 2007.07.11 (Wed) 19:14

CSShack(CSSハック)について書いてあるサイト集(国内) from 最先端で使えるデザインのチュートリアルや参考資料

最近Webデザインをしていてよく思うのが、CSSの奥深さです。 CSSの解釈が...

Tracked on 2008.05.01 (Thu) 16:02