3

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

この質問はしばらく前に (IE8 のベータ段階で) 尋ねられたので、これが変更されたのか、それとも条件を使用して IE8 が互換モードにあるかどうかを判断する方法が他にあるのか疑問に思っています。

ありがとう!

4

3 に答える 3

4

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

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

于 2010-06-29T11:29:13.723 に答える
-1

最終的に、このバグに対処するために 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 ベースのテーブルを正しく表示する最新のブラウザーでそれを表示するように強制されます。

于 2012-10-10T21:56:30.097 に答える