無料Wikiサービス | デモページ
Linuxなどのメモ書き

Quirks mode or Standard mode


ブラウザのレンダリングモード

Internet Explorer6以降やFireFoxにはHTMLを画面に描画する際に、レンダリングモードというものが存在し、どのモードで動作しているかによって表示が異る。

モードにはQuirks(互換)モード、Standard(標準)モード(Strict モードと呼ばれる場合もある)がある。Quirksモードでは昔からある標準に準拠していないようなページでも、それなりに表示を行い、StandardモードではHTML/CSSの仕様に従った表示を行う。

Quirksモードでの動作の違いは以下を参照。

また、JavaScriptのCSSプロパティでモードによって返す値が変わるものもある。

例: document.body.clientWidth, document.body.clientHeight
Standards Modeで動作している場合、ドキュメントの幅、高さが返される。
Quirksモードではウィンドウの幅、高さが返される。

モードの決定

ブラウザがどちらのモードで動作するかは、HTML先頭のDOCTYPE 宣言により決まる。どのようにモードが決められるかは以下を参照。

(*1) FireFoxではQuirks Mode,Standard Modeの他にAlmost Standards Modeが存在する。リンク先URLでは、Full Standards,Almost Standards,Quirksの3つのモードについて説明されている。Full Standardsが一般にいうStandard(Strict)モードのことだと思われる。

DOCTYPE宣言とモードの例:
  • Standardモードが選択されるケース
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  • Quirksモードが選択されるケース
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

document.compatMode

document.compatModeプロパティを使うことで、JavaScriptからどちらのモードで動作しているかを確認できる。document.compatModeがとる値は表1のとおり。

表1 document.compatModeの値

Value
Mode
BackCompat
Quirks
CSS1Compat
Standard(Strict)
(*) FireFoxのAlmost Standards Modeでもdocument.compatModeは"CSS1Compat"を返す。

参考:



最終更新 2007/09/06 14:30:52 - kztomita
(2007/09/06 14:22:27 作成)