Internet Explorer 8 への対応について

2009年 5月 1日 (金) / PM 10:42

本日のお話。

会社の人が最近Internet Explorer 8へバージョンアップしたらしく、「ここの表示が崩れるんだが~」っと言ってきたので対応しました。

「IE8は今後増えるからキチンと表示しないのは駄目だよ~」っと言われたのですが、過去に制作したWebサイトにまでキチンと表示する保障はどんなホームページ制作者も出来ませんよ。

私の場合、現在の新規制作場合、Firefox3をメインに使いながらIE6~8を常にチェックしながら構築して、最後にSafari/Chrome/Operaの最新バージョンの表示チェックまでは必ず行っています。
今回のケースは制作当時には無かったブラウザですし、利用者が1%未満の古いブラウザ(IE5など)やマイナーなブラウザまでサポートしていては機能もデザインも制限されてしまいます。

大変なんです。ほんと。

ちなみに今回の問題はnoscriptタグに対して height と display: block; を指定していたが原因で、他のブラウザではJavascriptが有効になっている場合は非表示となるのですが、IE8の場合CSSの指定が優先されてしまう為に発生した問題です。

解決策としては

  1. <meta http-equiv=”X-UA-Compatible” content=”IE=emulateIE7″ />でIE7表示モードを強制する。
  2. IE8ハックで対処。
  3. noscriptタグを削除する。

の3つですが、3番目はJavascriptが有効でない場合の対処を削る事になるので駄目。1番目は簡単な方法ではありますが、必要なページ全てに埋め込む必要があるのでメンドクサイ。と言う事で2番目に。
実際のコードは下記の通り。

html>/**/body noscript {height /*\**/: auto\9}

・・・何だよこれ。

タグ:

“Internet Explorer 8 への対応について” へのコメントが2件あります。 »

  1. latup より:

    それもひとつの方法ですね。
    どの方法が一番めんどくさくないかだと思います(^^;

  2. juner より:

    scriptが動いた時に要素を削除して、別の要素に置き換える様な動作にしては如何でしょうか?

コメントを残す