特定のブラウザでCSSに関する不具合が出たときにどのように対処するかはケースバイケースかと思います。
- CSS Hackのメリット
- CSSファイルだけに手を入れればよい
- ブラウザのバグをついたモノであるため、User-Agent(以下UAと記す)名に左右されない
- CSS Hackのデメリット
- CSSファイルの記述が汚くなりやすく、メンテナンス性が落ちやすい
- ブラウザが新しいバージョンになった場合に使えなくなることがある
- 検証に時間がかかる
- コンディショナルコメントのメリット
- 不具合発生がWindows版IEだけなら、HTML上で該当するバージョンで分岐可能
- コンディショナルコメントのデメリット
- HTML上での記述が必要になるため、ページ数が多いと修正に手間がかかる
- WinIEだけにしか適用できないため、MacIEを含めたその他のブラウザでの不具合には対応できない
- JavaScriptによるUA振り分けのメリット
- JavaScriptが実行できるのであれば、スクリプトを実行させることで可能
- JavaScriptによるUA振り分けのデメリット
- JavaScriptが実行できない環境に対応できない
- スクリプトの書き方によっては意図しない動作となる
- CGIでのUA振り分けのメリット
- ユーザ側の環境に依存しない
- スクリプトで制御可能
- CGIでのUA振り分けのデメリット
- CGIが使えない場合は不可能
- スクリプトの書き方によっては意図しない動作となる
- UA名偽装に弱い
- WWWサーバーでのUA振り分けのメリット
- ユーザ側の環境に依存しない
- 制御用ファイルの記述で制御可能のため、CSS、HTMLとも触る必要がない
- WWWサーバでのUA振り分けのデメリット
- WWWサーバの動作を制御できない場合は不可能
- UA名偽装に弱い
私個人は、CSSを適用させるか否かという部分で考えてしまうので、あまりCSS Hackとかコンディショナルコメントを使わないですね。.htaccessでCSSファイルへのアクセス禁止で、特定ブラウザについてはCSS非適用状態。
等価な情報は伝えることが重要であり、CSSは装飾をするためのモノでしかないと思っているから。CSS適用で下手に読めない状態にするぐらいなら、すっぴんの方がいいよ。
