ここに私は癖モードのウェブサイトを持っています。:(、そして私はいくつかのページをCSS1Compatモードにパッチしています。
既存のCSSを再利用して、1つのバージョンのみを保持したいのですが、ボックスモデルが異なるため、一部の値は癖とCSSモードで異なる必要があります。
HTMLが癖か標準モードかを判断できるセレクターはありますか?IEにはCSSハックがいくつかあることは知っていますが、ChromeとFirefoxをサポートする必要があります。
ここに私は癖モードのウェブサイトを持っています。:(、そして私はいくつかのページをCSS1Compatモードにパッチしています。
既存のCSSを再利用して、1つのバージョンのみを保持したいのですが、ボックスモデルが異なるため、一部の値は癖とCSSモードで異なる必要があります。
HTMLが癖か標準モードかを判断できるセレクターはありますか?IEにはCSSハックがいくつかあることは知っていますが、ChromeとFirefoxをサポートする必要があります。
これは、HTMLの癖であるため、CSSセレクターの癖ではありませんが、quirksモードでは、id
andclass
属性で大文字と小文字が区別されなくなります。つまり、大文字と小文字が異なるセレクターは常に一致します。詳細については、この回答とその最初の脚注を参照してください。
すべてのページでHTMLを変更できる場合は、html
またはbody
要素のいずれかにクラスを追加し(クラス名は関係ありません)、別のケースでは、 quirksセレクターに同じクラス名のプレフィックスを付けます。コード例は次のとおりです。
<html class="quirks">
<!-- Or: <body class="quirks"> -->
#foo {
width: 480px;
padding: 10px;
}
/* Capital Q instead of small q, won't match in standards mode with a doctype */
.Quirks #foo {
width: 500px;
}
これはすべてのブラウザに適用されます。
HTMLを変更できない場合は、すべてのブラウザーに適用できる純粋なCSSソリューションがあるとは思いません。以前のバージョンのIEでは、CSS2.1セレクターを使用して、IE5の癖や古いバージョン(古き良きhtml > body
ハックなど)からスタイルを隠すことができましたが、ChromeやFirefox、または新しい相互運用可能な癖モードではこれを行うことはできません。 IE10で導入されたのは、クァークズモードと標準モードで同じ高度なセレクターをサポートしているためです。