IE8のレンダリングモードと互換表示
互換表示ボタン
IE8でウェブページを開くと、ほとんどのページでアドレスバーの右側に互換表示ボタンが表示されることがわかる。このボタンは、ページのレイアウトが崩れた場合にユーザーがレンダリングモードを切り替えるために用意されている。
互換表示ボタンをオンにすると、METAタグで「IE=EmulateIE7」と指定したときと同じレンダリングモードになり、DOCTYPE宣言に応じてIE7 StandardsモードまたはQuirksモードでページが表示される。たとえば、XHTML1.0のDOCTYPE宣言を記述したページでは次のような表示になる。
SAMPLE …略…
※ブラウザで表示を確認する
下位互換を保つために導入された苦肉の策だが、互換表示ボタンの設定はサイトごとに記憶されるため、ユーザーが誤ってオン/オフすると制作者が予期せぬ形でレイアウトが崩れ、そのままの状態で閲覧され続ける危険性もある。また、細かな機能を把握していないユーザーであれば、互換表示ボタンのアイコンを見て「ここは何か問題のあるページなのだろうか」と思うかもしれない。
そこで、自分のページがどのレンダリングモードできちんと表示されるかを確認したら、互換表示ボタンを消すことをおすすめする。ボタンの表示は、METAタグかHTTPレスポンスヘッダでレンダリングモードを指定すれば消すことが可能だ。DOCTYPE宣言の記述だけでは消えないので注意したい。
SAMPLE …略…
※ブラウザで表示を確認する
なお、レンダリングモードをQuirksモードにすると、METAタグやHTTPレスポンスヘッダの有無にかかわらず、互換表示ボタンは表示されたままとなる。IE8 Beta2ではQuirksモードで互換表示ボタンが表示されることはなかったのだが、RC1から表示されるようになったようだ。
次回は、IE8で修正されたバグについてまとめていきたい。
- コメント(3件)
とすると将来 ie9 が出てもそのページはie8モードなのか。。
- ホワイトペーパー







ホームページ公開サービスあたりだとサービス主のWebサイトの関係でホームページ公開サービスのドメインも互換表示に設定される事例ががありました。
(少なくとも、@nifty @homepageはnifty.comが互換表示設定に設定されているため、
DOCTYPE宣言でIE8 Standardsモードにしただけでは、IE 7 Standardsモードになっていました。
METAタグを入れることでIE8 Standardsモードで表示されるようになりました。)