Mozilla's getting a new look. What do you think? https://mzl.la/brandsurvey

Mozilla Quirks Mode Behavior

以下は 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)。
    • MAPblock ではなく、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 要素の topmarginbottommarginleftmargin および rightmargin の各属性は、Quirks モードのみサポートします (バグ 9258)。
    廃止 Gecko 35 (Firefox 35.0 / Thunderbird 35.0 / SeaMonkey 2.32) (バグ 95530) この Quirk は HTML5 に準拠しているため、Standards モードで採用しました。
  • scrollLeftscrollTopscrollWidth および scrollHeight の各プロパティは、Quirks モードでは (HTML ではなく) BODY に対して相対的です (バグ 211030)。
  • HTML (1~7) と CSS (xx-smallxx-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 および vspaceTABLE 要素でのみサポートされます (バグ 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 要素の marginwidthmarginheight が、そこに含まれている 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

参照

Mozilla's Quirks Mode

ドキュメントのタグと貢献者

 このページの貢献者: yyss, dynamis, Taken, Mgjbot
 最終更新者: yyss,