CSS ハック

Ineternet Explorer や Google Chrome などのブラウザごとに異なる CSS の実装やバグなどに対応するためのテクニックを紹介します。

アンダースコアーハック

Internet Explorer にはプロパティの前にアンダースコア (_) を入れても、指定した値が適用されるバグがあります。そこで、IE のみに適用する値をアンダースコアを前に入れたプロパティで指定することで IE のバグを回避することができます。次のコードでは、IE 以外のブラウザでは color: #FFFFFF が、IE6 では color: #000000 が適用されます。

.ExampleClass {
    color: #FFFFFF;
    _color: #000000;
}

!important ハック

スタイルはタグやクラス、ID などを識別して適用されます。スタイルを重複して指定すると、タグよりもクラス、クラスよりも ID が優先されます。また、CSS ブロックや外部 CSS ファイルを使用した場合は、より下に記述したスタイルが優先されます。次のコードの場合、より下に記述した color: #000000 が適用されます。

.ExampleClass {
    color: #FFFFFF;
    color: #000000;
}

しかし、!important をスタイルの値の後ろに記述することで、その値を最優先して適用することができます。次のコードの場合、color: #000000 は打ち消されて color: #FFFFFF が適用されます。

.ExampleClass {
    color: #FFFFFF !important;
    color: #000000;
}

!important ハックとは

!important によって最優先させる値をコントロールできますが、Internet Explorer 6.0 以下は正しく処理しません。そこで、IE6以外に適用する値に !important を追記し、IE6のみに適用する値を下に記述することで IE6 のバグを回避することができます。次のコードでは、IE6 以外のブラウザでは color: #FFFFFF が、IE6 では color: #000000 が適用されます。

.ExampleClass {
    color: #FFFFFF !important;
    color: #000000;
}

作成者: コネタねこ

上から読んでも『コネタねこ』、下から読んでも『コネタねこ』。贈り物に悩んだら、コネタねこの小ネタ帳。欲しくなっちゃうプレゼント、そんなアイデアのぞきにきてね♪

コメントする

メールアドレスが公開されることはありません。 が付いている欄は必須項目です