こんにちは。Internet Explorer サポート担当の衣川です。
Internet Explorer (以下、IE) 8 で Web ページを閲覧しているとアドレスバーの右側に

のアイコン (互換表示ボタン) が表示されることがあるかと思います。
これは、IE8 が IE8 標準モードというドキュメントモードでページを表示していることを示しています。
このアイコンをクリックして押された状態にするとそのページは互換モードで表示されます。
標準モードとは IE8 で利用可能な機能を全て利用してページを表示するモードです。
IE8 標準モードは最も標準に準拠した Web ページの表示方法です。
しかし、IE8 標準モードで表示した場合、これまで IE7 で表示できた Web ページのレイアウトやデザインが崩れてしまう場合があります。
そのような場合、この互換表示ボタンをクリックすることで従来の IE バージョンのドキュメントモード (表示方法) で描画されるため Web ページを正しく表示させることができます。
今回は、この IE8 のドキュメント モードについて解説します。
- 目次 -
1. IE8 ドキュメント モード
2. ドキュメント モードの切り替え方法
2-1. DOCTYPE 宣言で指定する方法
2-2. META タグで使用する方法
2-3. HTTP レスポンス ヘッダーで指定する方法
2-4. 互換表示ボタンを使用する方法
2-5. 互換表示設定に追加する方法
2-6. マイクロソフトから配布される互換表示リスト
Note1: 現在のドキュメント モードの確認方法
Note2: ユーザーエージェント文字列
関連公開情報
1.IE 8 ドキュメント モード
IE8 には以下の 3 種類のドキュメント モードがあります。
IE8 でページにアクセスした際に表示可能な互換モードとしては、IE7 標準モードと Quirks モードの 2 種類があります。
|
ドキュメント モード |
説明 |
|
IE8 標準モード |
IE8 で利用可能な機能を全て利用して表示 |
|
IE7 標準モード |
IE7 と同等な機能を利用して表示 |
|
Quirks モード |
IE5 と同等な機能を利用して表示 |
2. ドキュメント モードの切り替え方法
これらのドキュメント モードを切り替える方法としては、以下の 3 つの方法があります。
【1】 サーバー側、または、コンテンツ側による方法
1. DOCTYPE 宣言で指定する方法
2. META タグで使用する方法
3. HTTP レスポンス ヘッダーで指定する方法
【2】 ユーザー操作による方法
4. 互換表示ボタンを使用する方法
5. 互換表示設定に追加する方法
【3】 その他
6. マイクロソフトから配布される互換表示リスト
それぞれの方法についてご説明します。
2-1. DOCTYPE 宣言で指定する方法
IE8 では DOCTYPE 宣言により IE8 標準モードと Quirks モードに切り替えることができます。
DOCYTPE 宣言では IE7 標準モードには切り替えることはできませんので、IE7 標準モードで表示するには META タグまたは HTTP レスポンス ヘッダーによる方法を利用します。
<Quirks モードで表示するための DOCTYPE 宣言>
・ HTML3.0 以下の DOCTYPE 宣言を記述している場合
例) <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 2.0 Final//EN">
・ HTML4.0 Frameset の DOCTYPE 宣言で DTD の URL を記述していない場合
例) <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Frameset//EN">
・ HTML4.0 Transitional の DOCTYPE 宣言で DTD の URL を記述していない場合
例) <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
・ DOCTYPE 宣言を記述していない場合
上記以外の DOCTYPE 宣言を記述した場合には IE8 標準モードで表示されます。
2-2. META タグで使用する方法
IE8 では META タグを利用してドキュメント モードを切り替えることができます。
META タグによる指定は、DOCTYPE 宣言による指定よりも優先されます。
ただし、META タグの content 属性に IE=EmulateIE8 または、IE=EmulateIE7 が指定されている場合には、DOCTYPE 宣言を優先します。
この方法はページ単位でドキュメント モードを切り替えたい場合に便利です。
<指定方法>
HEAD 要素に以下の META タグを記述します。
例) <meta http-equiv=“X-UA-Compatible” content=“IE=7” />
content 属性の値により、以下のようにドキュメント モードが切り替わります。
|
content 属性の値 |
ドキュメント モード |
|
IE=8 |
IE8 標準モードで表示 |
|
IE=7 |
IE7 標準モードで表示 |
|
IE=5 |
Quirks モードで表示 |
|
IE=edge |
最新のドキュメント モードで表示 |
|
IE=EmulateIE8 |
DOCTYPE 宣言に応じて IE8 標準モードまたは Quirks モードで表示 |
|
IE=EmulateIE7 |
DOCTYPE 宣言に応じて IE7 標準モードまたは Quirks モードで表示 |
2-3. HTTP レスポンス ヘッダーで指定する方法
IE8 では HTTP レスポンス ヘッダーを利用することでもドキュメントモードを切り替えることができます。
ドキュメント モードの指定方法は META タグ > HTTP レスポンス ヘッダー > DOCTYPE 宣言の順に優先されます。
ただし、META タグや HTTP レスポンスヘッダーのにて IE=EmulateIE8 または、IE=EmulateIE7 が指定されている場合には、DOCTYPE 宣言を優先します。
この方法は Web サーバー単位やディレクトリ単位でドキュメント モードを切り替えたい場合に便利です。
- HTTP レスポンス ヘッダー例
Web サーバーにて以下のヘッダーをクライアントに送信することにより、IE8 のドキュメントモードを切り替えることができます。 X-UA-Compatible ヘッダーに指定する値は META タグの content 属性の値と同様です。
例 : X-UA-Compatible: IE=7
2-4. 互換表示ボタンを使用する方法
IE8 のアドレスバーの右側 (更新ボタンの隣) にある互換表示ボタンをオンにすることでそのページを互換モードで表示させることができます。
互換表示ボタンをオンにした場合、META タグで "IE=EmulateIE7" と指定したときの同じドキュメント モード、つまり、DOCTYPE 宣言に応じて IE7 標準モードまたは Quirks モードで表示されます。
互換表示ボタンは META タグや HTTP レスポンス ヘッダーでドキュメント モードが指定されている場合には表示されません。 (DOCTYPE 宣言にてドキュメント モードが指定されている場合には、互換表示ボタンは表示されます。)
※ 注 :
互換表示ボタンをオンする操作を実行すると IE8 の互換表示設定に当該サイトが追加され、次回、当該サイトを表示した時にも META タグで "IE=EmulateIE7" と指定したときの同じドキュメントモードで表示されます。
尚、以下により互換表示設定に追加されたサイトは削除されます。
・ ユーザーが互換表示ボタンをオフにした場合
・ ユーザーが明示的に互換表示設定から当該サイトを削除した場合
・ ユーザーが履歴の削除を行った場合
2-5. 互換表示設定に追加する方法
IE8 の [メニュー] バー - [ツール] - [互換表示設定] にて互換モードで表示したいサイトを設定することができます。
互換表示設定に追加されたサイトのページは META タグで "IE=EmulateIE7" と指定したときの同じドキュメント モード、つまり、DOCTYPE 宣言に応じて IE7 標準モードまたは Quirks モードで表示されます。
また、この互換表示設定により以下の設定をすることも可能です。
・ マイクロソフトから配布された互換表示リスト (後述 2-6 で説明) に含まれるサイトは互換モードで表示する
・ イントラネット ゾーンのサイトは互換モードで表示する
・ すべてのサイトを互換モードで表示する
ただし、この設定を行っている場合にも META タグや HTTP レスポンス ヘッダーでドキュメント モードが指定されている場合には、META タグや HTTP レスポンス ヘッダーで指定されているドキュメント モードが優先されます。
2-6. マイクロソフトから配布される互換表示リスト
マイクロソフトでは Windows Update で互換表示リストを配布しています。
IE8 の互換表示設定にて "マイクロソフトからの更新された Web サイト一覧を含める" のチェック ボックスにチェックがされている場合、この互換表示リストに含まれるサイトは META タグで "IE=EmulateIE7" と指定したときの同じドキュメントモード、つまり、DOCTYPE 宣言に応じて IE7 標準モードまたは Quirks モードで表示されます。
互換表示リストに含まれるサイトの場合でも META タグや HTTP レスポンス ヘッダーでドキュメント モードが指定されている場合には、META タグや HTTP レスポンス ヘッダーで指定されているドキュメント モードが優先されます。
互換表示リストに含まれるサイトの一覧を確認するには、IE8 のアドレスバーに以下の URI を入力して実行します。
res://iecompat.dll/iecompatdata.xml
参考情報 :
l (機械翻訳) 互換表示リスト更新 2009 年 3 月 19 日) を Windows Internet Explorer 8 の利用できます。
l (機械翻訳) Windows Internet Explorer 8 で互換表示リストの説明
Note1: 現在のドキュメント モードの確認方法
現在の表示されているページのドキュメント モードは、F12 をクリックして開発者ツールを起動し、開発者ツールのメニューにあるドキュメント モードの表示から確認することができます。
参考情報 :
l Internet Explorer 8 の開発者ツールの概要
Note2: ユーザーエージェント文字列
ユーザー エージェント文字列は、Web サーバーにレポートされるブラウザーの ID です。ユーザーが Web ページにアクセスすると、そのサイトをホストしているサーバーに対して、ブラウザからユーザー エージェント文字列が送信されます。Web アプリケーション開発者は、ユーザーエージェント文字列を使用して、クライアントが使用しているブラウザーの種類を検出することができるため、ブラウザーの種類ごとにコンテンツを変えたい場合に役立ちます。
通常、IE8 では以下のようにバージョン トークンとして MSIE 8.0 が設定されたユーザーエージェント文字列が送信されます。
-------------------------------------------
Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0)
-------------------------------------------
しかし、上述の”2-4. 互換表示ボタンを使用する方法” や “2-5. 互換表示設定に追加する方法” や “2-6. マイクロソフトから配布される互換表示リスト“ にて互換モードで表示させている IE8 では、以下のように MSIE7 というバージョン トークンが含まれたユーザーエージェント文字列が送信されます。
-------------------------------------------
Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; Trident/4.0)
-------------------------------------------
“2-1. DOCTYPE 宣言で指定する方法” や “2-2. META タグで使用する方法” や “2-3. HTTP レスポンス ヘッダーで指定する方法” で互換モード表示させている IE8 では、MSIE7 ではなく、MSIE8 のバージョン トークンが含まれたユーザー エージェント文字列が送信されます。
参考情報 :
l ユーザー エージェント文字列を理解する
[関連公開情報]
l 次期バージョンでの互換表示機能の改良について
l 互換表示機能の紹介
l IE8 の互換表示について
l ドキュメント互換性の定義
l META タグと将来の互換性のロック
l Advanced solutions: Some Web sites may not be displayed correctly or work correctly in Windows Internet Explorer 8 (英語)
l Understanding Compatibility Modes in Internet Explorer 8 (英語)
l More information about Internet Explorer 8 Compatibility View (英語)
コミュニティにおけるマイクロソフト社員による発言やコメントは、マイクロソフトの正式な見解またはコメントではありません。
