以下は Mozilla の Standard モードと Quirks モード との振る舞いの違いの大まかなリストです。
スタイルとその他
- Quirks モードでは、
layout/style/quirk.css
中のすべてのスタイルが適用されます:- 孤立している
LI
は、ビュレットの位置がinside
になります (バグ 1049)。 - 内部の最初のノードが
UL
またはOL
であるLI
に、パディングを追加します (バグ 98636)。 - Quirksモードではリストの丸点がフォントサイズをリストから継承しません (バグ 97351)。
これは削除が提案されています: バグ 648331 - テーブルは、
font-family
以外のfont
プロパティを継承しません。 TABLE
のボーダーの色は、前景色ではなく灰色になります。BODY
およびTD
の top マージンとTD
の bottom マージンは相殺されます。- 空の要素の bottom および top マージンは相殺されます (バグ 97361)。
<PRE wrap>
、<PRE cols>
、<PRE width>
をサポートします。- 孤立した
DD
は、margin
ではなく:before
で生成したコンテンツを置きます (バグ 5119)。 DL
を入れ子にすると、インデントを挿入します (バグ 8749)。MAP
はblock
ではなく、inline
のようにふるまいます。- float 状態の
IMG
に、3px のmargin
を付加します (バグ 58899)。 - 余分なスタイルタグのサイズ情報は、見出しタグのサイズ情報に優先しません (バグ 77352)。
INPUT
の type のほとんどおよびTEXTAREA
で、box-sizing:border-box
を使用します。FORM
にmargin-bottom:1em
を付加します (バグ 41806)。
- 孤立している
- Quirks モードでは CSS の
class
名およびid
名で大文字小文字を区別しません。Standards モードでは大文字小文字が区別されます (getElementsByClassName
にも適用されます)。 - ドキュメント中で
text/css
であると mime type 指定してリンクされているスタイルシートは、サーバがContent-Type
ヘッダでtext/css
以外を返してきてもなお CSS として扱われます。 - CSS パーサは
#
で始まらない色指定も受け付けます。ただし、ショートハンドプロパティを除きます。 - CSS パーサは単位のない数値を
px
指定として解釈します (line-height
その他別の意味を持つプロパティ、およびショートハンドプロパティを除く)。 - Quirks モードでは CSS パーサが、style 属性の内容を囲む {} を許容します (バグ 99554)。この動作は相互運用性のために、Firefox 27 で削除しました (バグ 915053)。
background
属性を空文字列にすると Quirks モードでのみ背景画像 URL が空に設定されます。BODY
要素のtopmargin
、bottommargin
、leftmargin
およびrightmargin
の各属性は、Quirks モードのみサポートします (バグ 9258)。
廃止 Gecko 35 (Firefox 35.0 / Thunderbird 35.0 / SeaMonkey 2.32) (バグ 95530) この Quirk は HTML5 に準拠しているため、Standards モードで採用しました。scrollLeft
、scrollTop
、scrollWidth
およびscrollHeight
の各プロパティは、Quirks モードでは (HTML
ではなく)BODY
に対して相対的です (バグ 211030)。- HTML (1~7) と CSS (
xx-small
~xx-large
) のフォントサイズの計算が微妙に異なります (バグ 18136 参照)。 :hover
および:active
疑似クラスはセレクタが他の疑似クラスを含まない限り、リンクにのみ適用されます。他の要素に適用させるには、セレクタにタグ名、ID、クラス、属性のいずれかを含めなければなりません。
Gecko 6.0 (Firefox 6.0 / Thunderbird 6.0 / SeaMonkey 2.3) より前ではクラスをチェックしていませんでしたので、:hover
疑似クラスはクラスセレクタに適用されませんでした。例えば.someclass:hover
は無視されていました。
Gecko 36 より前のバージョンでは画像やフォームコントロールにもこの Quirk を適用していましたが、他のブラウザの動作に合うように変更されました (バグ 783213)。
Gecko 36 より前のバージョンでは同じセレクタで別の疑似クラスを使用した場合、セレクタ内で疑似要素を使用した場合、疑似クラスの引数の一部である場合も Quirk が適用されていました (バグ 783213)。- 存在確認なしで使用される
document.all
のサポート (訳注: if (document.all) などは false になるが document.all にはアクセスできるということ)。 - Quirk モードでは、
alt
属性を持たない画像 (IMG
要素) でプレースホルダアイコンが表示されることがあります。 - 廃止 Gecko 2.0 Gecko 1.9.2 (Firefox 3.6 / Thunderbird 3.1 / Fennec 1.0) までは HTML の色指定のパース処理が異なります (バグ 121738)。
- Quirks モードでは URL フラグメント
#top
で、そのようなアンカーが存在しない場合でもページの先頭にスクロールします。
廃止 Gecko 10.0 ただし HTML5 はこの動作を要求しているため、Gecko 10.0 (Firefox 10.0 / Thunderbird 10.0 / SeaMonkey 2.7) から Standards モードでも動作します (バグ 80784, バグ 93077)。
ブロックとインラインのレイアウト
- [この quirk は almost standards mode で使用されます] バグ 5821 および バグ 24186 を修正するために行の高さ (
line-height
のことではない) の計算が異なります (バグ 22274 にその他いくつかの問題について書かれています)。詳しくは almost standards mode をご覧ください。 - CSS 標準ではパーセント指定の高さは親要素が固定サイズでない場合 'auto' であるように振る舞うべきだとされていますが、パーセント指定の高さが画像、表、オブジェクトやアプレット (他も?) で (Netscape Naviagator 4 でのように) "機能する" ようにするための一連の Quirk があります。バグ 33443#c9 の他、バグ 41656 とその Duplicates も参照してください。これらの Quirk のうち幾つかは他の影響も伴うことがあります (バグ 54119 参照)。
- Quirks モードでは、祖先要素で指定したテキスト装飾の色を
FONT
要素が変更します。
すべてのモードに適用するよう提案されています: バグ 747517 - Quirks モードでは、
text-decoration
がフロートおよび絶対配置の要素に伝播します。 - (Firefox 4 / Thunderbird 3.3 / SeaMonkey 2.1) Quirks モードでは
text-decoration
がテーブル内に伝播しません (バグ 572713)。 - おそらく (Firefox 3): テーブルセルの直下にある (中間にブロックがない) インライン要素の最小固有幅を算出するとき、画像の前後で改行できないものとします (そうでない場合は、改行可能とします)。
- 廃止 Gecko 8.0 Gecko 8.0 (Firefox 8.0 / Thunderbird 8.0 / SeaMonkey 2.5) より前のバージョンでは、Quirks モードで
text-decoration
の装飾線が太く、また位置がディセンダーに合うよう調整されていました。
表
TD
,TH
,TR
,THEAD
,TBODY
, およびTFOOT
要素はドキュメントの背景 (色も?) が各要素にも適用されます (ドキュメントの背景が特定の方法で指定された場合?) (バグ 70831 参照)。[これは 2001 年 6 月に記述された当時は正しい説明でしたが、現在は正しくありません。TableQuirkColorRule を調査して、変更点がわかるよう書き直すべきです]- 廃止 Gecko 37
empty-cells
プロパティの初期値は Quirks モードではhide
ですが Standards モードでは (CSS2.1 の正誤に従って)show
となります (バグ 33244 参照) (しかし、修正の適切なあり方は、quirk.css
の中で、HTML のTABLE
要素にこれを指定する方法でしょう)。この Quirk は Firefox 37 で削除され、Quirks モードでもempty-cells
の既定値はshow
になりました (バグ 1020400)。 - Quirks モードではフロートされた表は他のフロート要素の直後にない限り決して次の "行" に移ることなく、ページを広げたままにします (バグ 43086 参照)。これに合わせて、それらの幅は、包含ブロックのの幅が残りの使用可能な領域であるかのように計算されます (バグ 99461)。
- Quirks モードでは
colspan="0"
およびrowspan="0"
の指定は意図的に HTML4 に書かれているようには扱われません (バグ 9879)。 - Quirks モードでは
hspace
およびvspace
はTABLE
要素でのみサポートされます (バグ 41893)。
これは削除が提案されています: バグ 725646 - Quirks モードでは、表のボーダースタイルが
inset
あるいはoutset
である場合、ボーダーの色は表あるいは非透過背景である最も近い親の色を基準にします。[これは 2001 年 6 月に記述された当時は正しい説明でしたが、現在は正しくありません。しかし、十分に語れるほど nsCSSRenderingBorders のコードを追いかけていません] - Quirks モードでは表のセルに固定幅を指定すると、
nowrap
属性をリセットします。nowrap
属性が与えられていると、セルの幅は指定した固定幅より小さくなりません (バグ 277232)。 - Quirks モードでは列や列グループがない表の高さが、height を指定していても 0 になります (バグ 241161)。
- ボーダーを重ねているテーブルで張り出しているボーダー (すなわち、ボーダーボックスの外側にある半分) が、Quirks モードと Standards モードとで異なる場合があります。[nsTableFrame::GetDeflationForBackground を確認して、実際の相違点やいつから異なっているかを明らかにする]
- Gecko には バグ 248239 があり、
height
プロパティのためにテーブルのセルはbox-sizing:border-box
が適用されているかのように動作します。これは Gecko 16 (Firefox 16) で Standards モード向けに修正しましたが、Quirks モードでは他のブラウザの Quirks モードの動作との互換性のために維持されています。 - (Firefox 16 / Thunderbird 16 / SeaMonkey 2.13) このバージョンで バグ 338554 を修正したため、Standards モードではテーブルのセルに
(-moz-)box-sizing
を適用しましたが、Quirks モードは以前の動作を維持しています。 - 廃止 Gecko 1.9 (Firefox 3) Quirks モードではボーダーのある表のセルは最低でも 1 ピクセルの幅を持ちます。
- 廃止 Gecko 1.9 (Firefox 3) Quirks モードにおけるテーブルレイアウト基本方針では、(どんな要素でも) パディングを無視します。
- 廃止 Gecko 1.9 (Firefox 3) テーブルレイアウト基本方針で、幅の扱いが異なる場合があります。
- 廃止 Gecko 2.0 (Firefox 4 / Thunderbird 3.3 / SeaMonkey 2.1) Quirks モードでは
absmiddle
(扱いが間違っている?) およびmiddle
(これも扱いが間違っているかも?) が表のセルのalign
値として受け入れられ、absmiddle
,abscenter
,middle
が表においてサポートされています (center
と同様に扱われる)。
これは バグ 559834 および バグ 573322 で削除しました。表のセル内でmiddle
およびabsmiddle
は、すべてのモードで動作します。 - Quirks モードでは
cellspacing
属性でパーセント値をサポートしますが、ピクセル値として扱います (バグ 106336)。
廃止 Gecko 13.0 (Firefox 13.0 / Thunderbird 13.0 / SeaMonkey 2.10) この Quirk は Standards モードでで採用されました。
フレーム
- Quirks モードでは
FRAME
要素のmarginwidth
とmarginheight
が、そこに含まれているBODY
要素にも与えられます。 FRAMESET
要素で、cols
/rows
の指定0*
は1*
として扱われます (バグ 40383 参照)。- 廃止
FRAME
要素のscrolling
属性の扱いが異なります。
HTML パーサ
- Quirks モードでは、"--" を HTML コメントの開始および終了デリミタとして扱うのではなく、以前のブラウザと互換性のある方法でコメントをパースします。
廃止 Gecko 2.0 (Firefox 4 / Thunderbird 3.3 / SeaMonkey 2.1) この Quirk は HTML5 に準拠しているため、Standards モードで採用しました。
MDC への移行前の原文情報
- 著者: David Baron, Boris Zbarsky
- 最終更新日: July 8, 2003