IE10 より前のバージョンの IE には、Quirks モードが 1 つしかありません。このモードは、 IE10 以降ではIE5 Quirksとして知られています。
IE10 では、単にQuirksと呼ばれる 2 つ目の Quirks モードが導入されました。
これらのモードは両方とも、レンダリング モードを変更して、他のレイアウト変更の中で、古い「癖」ボックス モデルを使用します。これは、それらの間で一貫しています。
元の Quirks モードは、基本的に IE5 をエミュレートする下位互換モードでした。このため、ボックス モデルなどの変更に加えて、IE5 以降に導入されたブラウザー機能の大部分が無効になります。つまり、このモードでは、新しい HTML5 機能は動作しません。
新しい Quirks モードは古い Quirks モードと同じレンダリング ルールを使用しますが、すべてのブラウザー機能を無効にするわけではありません。
それがそれらの基本的な違いです。
次に、なぜわざわざ両方のモードを使用するのかという質問をすることができます。
これに対する答えは、他のブラウザー (Chrome など) にも Quirks モードがあり、ページに doctype がない場合に (IE と同じように) トリガーされるということです。しかし、他のブラウザは、IE のように下位互換性のために機能を無効にしたことはありません。
その結果、互換モードのサイトは、基本的なレンダリング ルールが同じであっても、他のブラウザーと比べて IE ではまったく異なるように見える可能性がありました。
そのため、互換モードのサイトのクロスブラウザー互換性を改善するために、新しい互換モードが IE によって導入されました。
しかし、その結果、新しい quirks モードは古い quirks モードとは異なるページをレンダリングするため、MS がそれ用に作成されたサイトを持つユーザーをサポートするには、古いバージョンが必要でした。
最終的には、可能な限り、Quirks モード (どちらも) の使用を避ける必要があります。MS がエクストラ モードを導入することでクロス ブラウザーの取り組みを行ったにもかかわらず、Quirks モードを使用している場合でも、ブラウザー間には大きな違いがあります。
ベスト プラクティスは、可能な限り常に標準モードを使用することです。
とにかく Quirks モードは不要であるべきです: Quirks モード ボックス モデルが必要な場合は、CSS を使用して標準モードでアクセスできますbox-sizing:border-box
。