質問

私の調査によると、IE8 は、ローカル イントラネット ホストやローカル IP 範囲に対して強制的に IE7 モードになるなど、迷惑な動作をすることがわかりました。からわかりました 前の質問 IE8 が IE8 モードでレンダリングしているか IE7 モードでレンダリングしているかに関係なく、条件付きステートメントを使用する方法はありません。 <!--[if IE 8]> 条件付き。

この質問は少し前に(見たところ IE8 ベータ版の段階で)行われたものなので、これが変わったのか、それとも他の方法があるのか​​疑問に思っています。 条件文の使用 IE8 が互換モードかどうかを確認します。

ありがとう!

役に立ちましたか?

解決

いいえ、条件文を使用してそれを行うことはできません。

これを行う最善の方法は、Pekka が投稿したリンクで説明されているように、 document.documentMode プロパティを使用することです。 IE8 が互換表示で実行されているかどうかを検出するにはどうすればよいですか?

他のヒント

最終的に、私はこのバグに対処するために 2 つの一般的な戦略を組み合わせることを選択しました。

オーバーライド CSS ファイルを作成し、条件付きコメントを使用してインポートしました。ただし、IE 8 または 9 の場合、このオーバーライドはあまり良くないので、以下に示すように、「IE を最新のレンダリング モードに強制する」ヘッダー スイッチを含めます。

<!--[if lte IE 7]>
  <meta http-equiv="X-UA-Compatible" content="IE=edge" />
  <link rel="stylesheet" type="text/css" href="/Content/IE7Overrides.csss" />
<![endif]-->

これにより、IE7 には適切なフェールセーフが提供されますが、IE8 と IE9 では最新のブラウザで表示することになり、CSS ベースのテーブルが正しく表示されます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top