普段コーディングの際、CSSハックは極力控えていますが、レンダリングの確認しなくてはならないブラウザが増え続ける昨今、やはり、使わざるを得ない状況に陥る時がたまに発生してしまいます。

そんな時、つい書き方を忘れてしまっていたりするので、ここに知っておくと便利なCSSハックとして、いくつかのパターンをメモ書きしておきます。

「div」に対してハックをかけた際の書き方になりますが、もちろんクラス「.abc」やID「#abc」などでも使用可能です。

IE6のみ適用 ———————————-
【1】
*html div {
  width: 300px;
}
【2】
div {
  _width: 300px;
}

IE6のみ除外 ———————————-
div {
  width /**/: 300px;
}

IE7のみ適用 ———————————-
*:first-child + html div {
  width: 300px;
}

IE7のみ除外 ———————————-
html>/**/body div {
  width: 300px;
}

IE8のみ適用 ———————————-
html>/**/body div {
  width /*\**/: 300px\9;
  height /*\**/: 300px\9;
}

IE6 IE7のみ適用 ——————————
【1】
div {
  *width: 300px;
}

【2】
div {
  /width: 300px;
}

Firefox 1.5,2.0以降に適用 ——————–
div, x:-moz-read-only {
  width: 300px;
}

Firefox 3.0以降に適用 ————————
div, x:-moz-broken {
  width: 300px;
}

Firefox 3.5以降に適用 ————————
div, x:-moz-broken, x:last-of-type {
  width: 300px;
}

Safari3(以降?)のみ適用 ——————–
body:first-of-type div {
  width: 300px;
}

Safari2(以前?)のみ適用 ——————–
html:\66irst-child div {
  width: 300px;
}

————————————————

以前、「Firefoxバージョン毎のCSSハック」と題してハックについて書いていたので併せてご活用下さい。

できるだけハックは使わないですむようなCSS構成が望ましいですが。。。

ご参考までに。。。