web-dev-qa-db-ja.com

「position:fixed」cssをIE 7+ with TRANSITIONAL doctypeで機能させる方法は?

position:fixed;はIE IE 7まで)でサポートされておらず、IE 7 STRICT DOCTYPEがある場合。

私の質問は、「IE 7 with TRANSITIONAL DOCTYPEで動作させるにはどうすればよいですか?」

DOCTYPEを変更することを提案しないでください。これは私の質問に答えないので、ありがとうございます。

17
roman m

fixedをサポートするために厳密なDOCTYPEは必要ありません。 標準モード (または「ほぼ標準」)をトリガーするDOCTYPEのみが必要です。これは、次のような一時的なDoctypeである可能性があります。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

またはXHTML:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

システムID(最後のURI)が含まれている限り。

あなたのページが本当にがQuirksモードに依存している場合(うーん!)、申し訳ありませんが、fixedを使用することはできず、 JavaScriptハックに頼る(しかし、とにかくIE6用のハックが必要になるかもしれません)。

23
bobince

Transitional/Strict Docタイプを使用しても、固定位置は機能しません。ただし、互換モードでIE9を使用しており、IE8ランタイムライブラリを使用してレンダリングすることを想定しています。この問題を修正するには、次のCSSを要素に追加する必要がありました。

.elementToBeFixed {
    position: fixed;
    top: 0;
    left: 0;
}

上または左が欠落していると機能しません。IEのすべてのバージョンで機能するには、明示的にゼロ(または目的の値)に設定する必要があります。言うまでもなく、IE吸う。

10
Asad Hasan