2011-12-09 21 views
0

このページはChromeで正常に動作し、IE9では動作しません。IE9 CSSの互換性とDOCTYPEステートメント

私は、HTMLコードの条件付きコメントを使用して、IE9ページの新しいCSSを作成しようとしました。大丈夫。私は削除した後、私はhtmlファイルでDOCTYPEを含む場合、すべてが (でもChromeで)めちゃめちゃにされ

  • しかし:

    しかし、その後、私は、DOCTYPEステートメントを含めてみました...そして、次の処理が行われそれは、 ChromeとIE9でページが素晴らしいように見えます。

  • IE9を再起動(または一時的なデータを削除)した場合、ページは再び動作しません 。

私は実際に何が起こっているのかわかりません。

本当にありがとうございます。

答えて

3

すでに述べたように、常にdoctypeを使用します。 IEがなければ、IEはクォークモードでレンダリングし、得られるものは他のブラウザでのものと大きく異なるでしょう。

doctypeでコードが悪く見える場合は、まずはコードが悪いことをお勧めします。あなたはあなたのサイトを奇妙なモードに設計しました。これはあなたにランダムなような結果を与えるでしょう(そうではありませんが、そのように見えます)。

標準モードを使用するには、サイトを再設計する必要があります。その後、すべての最新のブラウザで同じ(または同様の)外観になります。

+0

あなたの答えをありがとう、私は自分のHTML/CSSに大きな再構成をしなければならないようです。とにかく、ブラウザを閉じるまで、DTDを指定して削除すると、しばらくの間、本当にうまくいくのは本当に好奇妙です。それについての説明はありますか? –

3

まず、必ずdoctypeを含める必要があります。これは、あなたが再生しようとしているルールのセットをブラウザに伝えます。

doctypeを省略すると、IEはマークアップが古くて、引き続きQuirks Modeとみなします。これは基本的にIE 5.5のレンダリングです。この副作用にはIE box model bugが含まれます。

マークアップが表示されていない場合は、W3Cバリデーターを使用してvalidating your markupCSSを強くお勧めします。多くの場合、ChromeとFireFoxは疑わしいマークアップの意味を推測するのに「より良い」IEです。

+0

ブラウザが疑わしいマークアップを扱うのが厳しい場合は、ウェブサイトの99%が1000倍も見えるでしょう;) –

0

まず、HTML/CSSを見ずに解決策を見つけるのは難しいです。一般的にIE用に別のCSSファイルは必要ありません。

また、ブラウザの不一致を最小限に抑えるためにHTML5 Boilerplateをお試しください。 CSSでエラーが発生しない限り、ほとんどの問題を解決するはずです。