• 締切済み

IE11での互換表示の挙動

IE11で下記コードのものをアップし表示させたのが添付画像の左側のものです。思惑通りの表示です。 一方、ツールの互換表示設定で、当該サイトを追加した後に表示されたのが右側の画像です。ここには、予期しない1行が下に余分に付いています(黄色部分)。 下記コードはコード冒頭に記述したOPTYPE(HTML4.01)に適合していることはチェック済みです。 添付画像の右側の画像のような表示になるのは何故でしょうか。最新の文法に基づき記述したコードが何故曲解されて崩れる(本例では1行余分に表示される)のでしょうか。そも、この場合における「互換表示設定」って、一体私がどういう設定を命じたのでしょうか。 簡潔で結構ですので、カラクリを教えていただけたら幸いです。 (注)コードは、本件質問の本質に関わらない要素等は記述を省略してあります。 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <meta http-equiv="Content-Style-Type" content="text/css"> <title>test</title> </head> <body style="background-color:gray"> <div style="background-color:yellow;width:150px;"> <form action="#"> <SELECT size=4 style="width:100%;"> <OPTION value="" selected>test1</option> <OPTION value="">test2</option> <OPTION value="">test3</option> <OPTION value="">test4</option> <OPTION value="">test5</option> </SELECT> </form> </div> <p>ここはformの外です</p> </body> </html>

みんなの回答

  • drum_KT
  • ベストアンサー率43% (1108/2554)
回答No.1

IEの「互換表示」というのは、HTMLが古いIE(例えばIE7)の独自タグに準拠しているような場合に、古いIEのレンダリング処理と互換性のある表示を行うという意味です。 なので、新規に作成するページを、わざわざ互換表示設定で確認する必要はあまりありません。しいて言えば、古いIEで見るとどうなるかを確認しているということになります。

noname#201411
質問者

お礼

早速のご回答ありがとうございます。 >しいて言えば、古いIEで見るとどうなるかを確認しているということになります。 ↑ だとすると、ちょっと昔にタイムスリップして、古いIEの時代に、添付画像の左側の画像のような正規の表示をさせるには、何か別の古いコードで記述していたはずだ、ということになるのでしょうか?。 「互換表示設定」というのは、もし古いコードで書かれていればそれに合わせた時代のIEに衣替えし(そのかわり、その古いIE以降のバージョンに対応した新しいコード部分については無視される)、他方、すべてがIE11に適合するコードで書かれていれば、何もしない、つまり、「互換表示設定」をしても何もせず左側の画像のように表示される、というのであれば納得・理解しやすいのですが・・・。 それとも、「互換表示設定」というのは、コードの新旧がどうであれ、古いIEに自動的にバージョンダウンして表示するということでしょうか。ただその場合、古いIEというのはどのバージョンなのか判然としませんが・・・。IE11の場合はIE9ということでもなさそうだし。或いは、コード冒頭に記述したDOCMODEより古いHTML3.0?とかに合わせたバージョンにダウンして表示する、とか?。 それにしても、本件サンプルコードは、古い昔からあるようなコードで、ことさら新しい記述が含まれているとも思えません(素人の勝手な想像ですが)。

関連するQ&A