2009-08-07 15 views
5

IE8はIE6/7のようなquirksモードで動作しますか?IE8とquirksモード

私は本当に奇妙なコードを持つウェブページを持っています。コンテンツは、パディングと負のマージンを中心に配置されています。

これはIE6/7などのブラウザでは正常に動作しますが、IE8ではコンテンツ領域の幅が半分になり、中心にはなりません(クォークモードのフラグ)。

ソースコードには、DOCTYPEの前に3つの空白行があります。私はそれがIE6を奇抜なモードにすることを知っている。それはIE8にも影響しますか?

ソースにアクセスできないため、テストするためにこれらの行を削除することはできません。

+0

コンピュータに保存してソースを編集します。これらの空白行をストライプ化するかどうかを確認してください。 Quirksモードは、疫病のように避けるべきです。 – voyager

+1

あなたが確信しているページにいるときは、ブラウザのウィンドウに次のように貼り付けてください:javascript:alert(document.compatMode);現在のモードを教えてください。 – Steerpike

+0

s/browserウィンドウ/ broswerアドレスバー – Steerpike

答えて

5

here見つけることができるいくつかの簡単なテストを実行している(空白行が癖モードにIE8を投げるべきではないことを示しているように見えます誰もがそれを混同していると思われる互換モードとは異なります)。

私は、IE8/7のさまざまなモードをどのように混乱させるのかを書き留めました。hereには、ブレークダウンにクワルクモードも含まれていませんでした。 Quirksモードの詳細な説明はhereです(元の質問ではありませんが、興味深いかもしれません)。

+2

ああ...彼らのdoctypeは<!DOCTYPE HTML PUBLIC " - // W3C // DTD HTML 4.0 Transitional // EN"> あなたのチャートによれば、IE8は奇妙なモードになります。 – Emily

+0

ヘッドアップ:リンク#2(IE8/7の非常に混乱しているさまざまなモード)はもはや有効ではありません。 –

0

はい、あります。 Internet ExplorerのquirksモードはIE5.5です。 quirksモードが存在する場合、IE6/7/8は5.5に戻ります。 IE6/7では問題なく動作していたので、それはquirksモードではありません。 IE8には、この問題に対処するための "Compatibility View"ボタンがあります。それは私にとって良い解決策ではありません。 CSSコードを確認する必要があります。

+0

しかし、IE6/7は空白行以降も奇妙なモードになるべきではありませんDOCTYPEの前にありますか?互換モードでは正常に見えます。これはIE6で開発されたもので、標準(またはその一部)に従っているので、ループのためにIE8を投げているquirksモードをどうにかして補いました。 – Emily

+0

@Emily、いいえ、IE8をquirksモードにしません。 IE8で正しくレンダリングするようにコードを変更するか、互換モードの1つを使用することができます。 6つのモードがあり、サイトが6/7下で正常に動作していたので、次のタグを追加できます。 標準モードでIE8に標準のIE7指令を使用させます。 Quirksモードは5.5になります。 – dalizard

0

IE8にはIE7のようにページを扱う互換モードがあります。互換モードでページを表示しようとしましたか?

+0

互換モードでページが正常に表示されます。 – Emily

6

doctypeをHTML 5に変更するといくつかの問題が修正されます。私は、厳密なdoctypeを使用してIE8でmin-widthに関する問題を抱えていました。

ので、この変更:

< DOCTYPE用HTML PUBLIC - これに "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd" >

"// W3C // DTD XHTML 1.0厳格// EN":DOCTYPE htmlの>

<を!

こちらをご覧ください:http://davidnaylor.org/blog/2008/09/ie8-and-max-width.html

+0

私の問題を修正しました、ありがとう! – Sirber

3

を今日、私はXHTML v1.0の(厳格な)からHTML5への私たちのDOCTYPEを変更しました。私は、IEがDOCTYPEをまだ認識していないにもかかわらず、ページを標準に準拠したモードでレンダリングするという、どこかで読んでいます。

私がIE8でチェックインしたとき、ページ全体が慌てて見えました(CSSと他のスタイリングがかなりあります)。私がCSSに「間違っている」ことは何もなかったことに気付く前に、しばらくかかりました。しかし、それはquirksモードでレンダリングされました。

ここに掲載された質問、特にこのコメントには、「ソースコードにはDOCTYPEの前に3行の空白行があります。私はそれがIE6を奇妙なモードにすることは知っています。

空白行についてはわかりませんが、変更を加えたときには、新しいHTML5 DOCTYPEの上にあった古いDOCTYPE文を「ハングオフ」するためにjavascriptコメントを使用していました。いったん私がこれらの行(空白行または2行を含むかもしれない)を削除すると、私の発汗は止まり、IE8は標準に準拠したモードでレンダリングされました。

+0

あなたは仕事のハッキングの多くの時間を節約しました。かみそりは、System.Web.OptimizationをDoctypeの上に置いて低く見て、IE8ですべてのスタイルをノックアウトしました。私はそれを1行下に移動し、それはすべてソートされています!ありがとう! –

関連する問題