IE 8のレンダリングモードとサイト毎の互換表示

ローカルで確認した時とWebページの表示が違う!?

 IE 8ではDOCTYPE宣言とMETAタグで、CSS等の表示の仕方を変えるレンダリングモードを指定することができますが、DOCTYPEだけを指定してIE 8 Standardsモードを指定し、ローカルマシンのIE 8で見栄えを確認したにも関わらず、Webページとして公開した時にはIE 7 Standardsモードで表示されるということはないでしょうか?

 この状態は、ドメインが互換表示が必要なサイトとして設定されているため、IE 8がDOCTYPE宣言の指定を無視して、IE 7 Standardsモードをレンダリングモードに選択する為に発生します。

 ホームページ公開サービスやブログサービスではサービス提供元のドメインを使うことが多くなりますが、この場合サービス提供元のページがIE 8で不具合があるために互換表示が必要なサイトとして設定されたため、ドメインが同じになるユーザーのページまでユーザーが望まないにも関わらず互換表示設定になるため、ローカルとWebサイトで同じWebページの表示が異なるという現象が多く発生すると思われます。

ローカルとWebサイト上での表示を合わせる

 METAタグやHTTPヘッダでのレンダリングモードの指定はサイト毎の互換表示より優先されるので、IE 8のWeb標準に近い(他のWeb標準をサポートしたブラウザと表示が近くなる)IE 8 Standardsモードを選択したい人はMETAタグやHTTPヘッダを指定するようにする必要があります。
(指定については「META タグと将来の互換性のロック」を参照すること。)

 他のブラウザや未来のブラウザのためにここはEdgeモードを選択しておきたいところです。

 ちなみに、互換表示が行われるドメインはres://iecompat.dll/iecompatdata.xml をIE 8のアドレスバーに打ち込んで表示されたドメインになります。

IE 8を考慮した表示確認

 よって、IE 8の表示を確認する時はWebページを公開するWebサイトに配置して確認を行わないと正しい表示確認にはならないということになります。
 (METAタグを指定するにしても、METAタグが正しく設定されているかどうかを確認するため、Webページを公開するWebサイトに配置して確認する必要があります。)
 また、サイト毎の互換表示の設定は「ツール」-「互換表示設定」で表示される「互換表示設定」ダイアログの「マイクロソフトからの更新されたWebサイト一覧を含める」のチェックの状態で変わるので、(チェックを入れるとサイト毎の互換表示が有効になる。)IE 8 StandardsモードやEdgeモードにした上で、「マイクロソフトからの更新されたWebサイト一覧を含める」にチェックを入れた状態で表示確認を行い、他Webサイトとの互換性を重視するユーザーのIE 8の設定を考慮したうえで表示を確認する必要があるでしょう。

参考文献

2008/12/4 - 次期バージョンでの互換表示機能の改良について
META タグと将来の互換性のロック
(いずれもMSDN Internet Explorerデベロッパーセンターより)

御意見、御感想、御希望等ありましたら何でもE-Mailでどうぞ

Tatsuの開発室に戻る


[Tatsu's room on the Web] This page is presented by Tatsu