10

別のマシンで作成した新しいasp.netMVCアプリをテストしたとき、レイアウトが正しくなく、IE9では奇妙に見えました。開発ツールを見ると、モード/標準は古いバージョン、さらには互換モードに設定されていました。私はこれをIE9に戻し、再び大丈夫でした。

しかし、サイトを再度開いたときに、これらの値が再び設定されていました。オーバーライドし続けるデフォルトがありますか、それとも何らかの理由でアプリがこれらの値を古いバージョンに変更しますか?

4

2 に答える 2

20

IEブラウザファミリがどのレンダリングモードが最適かを推測するために使用するメカニズムがいくつかあります。このトピックについてもっと読むことがあります:

X-UA-CompatibleはIE=edgeに設定されていますが、互換モードは停止しません

したがって、どのIEバージョンをターゲットにしているのかを判断する方法があります。このhtmlタグを、<head>要素の後の最初の(実際には最初の)ものとして配置します。<title>

<!DOCTYPE html>
<html>
  <head>
    <title>My Web</title>
    <meta http-equiv="X-UA-Compatible" content="IE=100" >
    ...

contain="IE=8"IE 8.0をターゲットにしている場合、コンテンツは次のようになります。IE=100はIE9.0++で機能します。

この動作はイントラネットでは機能しないことを読みましたが、私の経験は異なります。重要なのは、その<meta>要素が最初でなければならないということです!最初の意味は、前にコメントがないことです。タイトルの後の最初のものだけではありません。

たとえば、サーバー側でコードを調べてバージョンを確認し、ブラウザに関連するメタを最初の要素として配置します

于 2012-11-23T07:09:03.833 に答える
8

補足として、テスト時に互換性のオーバーライドをローカルブラウザに保存することができます。

差出人(http://answers.microsoft.com/en-us/ie/forum/ie9-windows_7/ie9-always-rendering-pages-in-ie7-compatibility/c0177b44-3950-e011-8dfc-68b599b31bf5):

ステップ1:互換表示をオフにして確認しましょう。

a。InternetExplorerを開きます。

b。キーボードのAltキーをクリックします。次に、メニューバーの[ツール]をクリックします。

c。[互換表示設定]を選択します。

d。[互換表示ですべてのWebサイトを表示する]のチェックマークを外し、[互換表示設定]ウィンドウを閉じます。

手順2:InternetExplorerの設定をリセットして確認します。

参照:http ://support.microsoft.com/kb/923737 (この記事はInternet Explorer 9にも使用できます)

于 2013-05-12T22:49:34.263 に答える