fontまわりのハックについて

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

この記述をハックを使用して記述するとこうなります。

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

でもこのハックはIE7では有効ではなくて、font-size: 12px; で 絶対指定することになってしまいます。 なので、「*(アスタリスク)ハック」を使用します。

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

ショートハンドのfont プロパティには、font-sizeとfont-familyの値が 必須となります。なので、3行目の技術は不正なプロパティとなり、 仕様に準拠しているブラウザでは無視され、IEだけ読み込んでしまいます(笑)

で、これらの文法違反をクリアしようとするとこうなります。

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