IE10には、古いIEの動作とHTML5との相互運用を可能としたレンダリングエンジンとして動作するQuirksモードと、最新のレンダリングエンジンとして動作するStandardモードがあります。HTMLドキュメントの一番上でのDOCTYPE宣言を行うことにより切り替えを行います。
IE10の場合、「X-UA-Compatibe」へ「IE=EmulateIE」というパラメータを与えることにより、過去のIEの動作を再現させることができます。EmulateIEは、5/7/8/9の3種類を持っています。5を指定すると常に「Quirksモード」として動作しますが、7/8/9の場合、DOCTYPE宣言の内容によって「Quirksモード」か「IE7/8/9 Standardモード」のどちらかへ遷移します。
▼ HTMLドキュメント内で宣言する場合
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE9" />
▼ HTTP Response Headerで指定する場合
X-UA-Compatible:IE=EmulateIE9
EmulateIEを指定した場合もそうでない場合も、Quirksモードへの判定条件は変化しません。このため、本記事ではEmulateIEを指定している状態で、IE7/8/9 Standardモードになる場合も「Standardモード」として扱います。
DOCTYPEスイッチ一覧
Quirksモードを「Q」、Standardモードを「S」と表記します。
HTML1系
Q | 無し |
HTML2系
Q | <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN"> |
Q | <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> |
S | <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML i18n//EN"> |
HTML3系
Q | <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 3.0//EN"> |
Q | <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN"> |
Q | <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> |
HTML4系
Q | <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> |
S | <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> |
Q | <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN"> |
S | <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd"> |
S | <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"> |
S | <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> |
XHTML1系
S | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> |
S | <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> |
S | <!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> |
S | <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> |
S | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd"> |
S | <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd"> |
HTML5系
S | <!DOCTYPE html> |
IE5 quirksモードについて
IE6〜10までのQuirksモードはIE5の動作を再現するためにありましたが、IE10からは方針を変更し、HTML5標準との相互運用を行うための仕様変更が行われました。このため、公式的にIE5とは互換性がなくなっています。
代替の手段として、IE10にはIE5の動作を再現させる「IE5 quirksモード」という別のドキュメントモードを用意しています。これを利用すれば、以前のQuirksモードと同じ動作を再現させることが可能です。
対策には、以下のリンクを参照して下さい。