2009-10-27 2 views
17

私はposition:fixed;がIE 7までIEによってサポートされていなかったことを知っています。STRICT DOCTYPEを持っていればIE 7でしか動作しません。IE 7 +でTRANSITIONAL doctypeを使用するには "position:fixed" CSSを使用するにはどうすればよいですか?

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

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

+0

IEのおかげで家族と過ごす時間が短くなりました。 – user3383675

答えて

23

fixedのサポートには、厳密なDOCTYPEは必要ありません。 Standards Mode(または 'ほぼ標準')をトリガするDOCTYPEだけが必要です。

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

またはXHTML:限り、システムID(末尾にURI)が含まれているよう

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

それは、次のような過渡DOCTYPEすることができます。あなたのページが本当にが癖モード(ぐふ!)に依存している場合

は、すみませんが、あなたはfixedを使用することはできませんし、JavaScriptのハックに頼る必要があります(ただし、あなたがとにかくIE6のものが必要になる場合があります)。

+1

html5は「ほぼ標準」モードをトリガーしますか? '<!doctype html>' –

+9

@ジョニー:HTML5 '<!DOCTYPE html>'は完全な標準モードをトリガします。 – bobince

10

暫定的/厳密なドキュメントタイプであっても、固定位置は私にとっては機能しません。しかし、私は互換モードでIE9を使用しており、IE8のランタイムライブラリを使用してレンダリングすると仮定しています。この問題を解決するには、次のCSSを要素に追加する必要がありました。

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

それはIEが吸う言うまでもなく....それはIEのすべてのバージョンで動作するためにトップまたは左に明示的にゼロ(またはご希望の値)にそれらを設定する必要が欠けた状態では動作しません。

+0

はチャームのように働いた!ありがとう! – marsalal1014

+0

ちょうどFYI:IE9でも、互換モードは* quirksモード*でIE7レンダリングエンジンを使用します。 IE8のようなものはレンダリングしません。 –

+0

@Chris、私は最近、それはIE7のユーザーエージェントを送信することを実現しました...ありがとう –

関連する問題