Microsoftのサイトでは、単純なdoctype宣言で十分だと主張しています。しかし、これがIE7モードにフォールバックする限りの短いドキュメントです。
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
</body>
</html>
Microsoftのサイトでは、単純なdoctype宣言で十分だと主張しています。しかし、これがIE7モードにフォールバックする限りの短いドキュメントです。
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
</body>
</html>
回答:
Internet Explorerは、ほとんどのWebページが以前のバージョンのIEをターゲットにするように作成されていると想定し、Doctype、メタタグ、およびHTMLを調べて、最適な互換モードを判断します(場合によっては正しくありません)。HTML5 doctypeを使用していても、IEはイントラネットサイトであれば、互換性モードでWebサイトを配置します。
Webサイトが常に最新の標準モードを使用するようにするにDisplay intranet sites in Compatibly
は、オフになっていることを確認します。ただし、Webサーバーに対してローカルな各マシンでこれを行う必要があります(手順は以下にあります)。
別の方法としては、X-UA-Compatible
ヘッダーを使用してサーバーからこれをオフにすることもできます。メタタグを使用しても機能しないことに注意してください。
<!-- Doesn't always work! -->
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
MSDN全体を通して、ホストヘッダーまたはメタタグを使用すると、イントラネットサイトでさえもオーバーライドする必要があることが言及されています。Internet Explorer 8の互換モードについての記事は次のように述べています。
多数の内部ビジネスWebサイトがInternet Explorer 7用に最適化されているため、このデフォルトの例外はその互換性を維持します。...メタタグまたはhttpヘッダーを使用して互換モードをドキュメントに設定すると、これらの設定は上書きされます。
ただし、実際にはこれは機能しません。機能する唯一のオプションはホストヘッダーを使用することです。記事のコメントセクションにも、この正確な問題の多数の例が示されています。
Metaタグを使用すると、タグのすぐ下にない<head>
場合やタグの前にデータが多すぎる場合にタグを無視するなど、他にもいくつかの問題があります(4k)。また、IEの一部のバージョンでは、ドキュメントの再解析がトリガーされ、レンダリングが遅くなる場合があります。これらの問題の詳細については、MSDNの記事「ベストプラクティス:ヘッドを整理する」を参照してください。
X-UA-Compatibleヘッダーの追加
.NETおよびIISを使用している場合は、これをに追加web.config
できます。これをプログラムで行うこともできます。
<system.webServer>
<httpProtocol>
<customHeaders>
<add name="X-UA-Compatible" value="IE=edge" />
</customHeaders>
</httpProtocol>
</system.webServer>
IISを使用していない場合は、どの言語でも簡単に実行できます。たとえば、PHPでこれを行う方法は次のとおりです。
header('X-UA-Compatible: IE=edge');
X-UA-Compatible
ヘッダーがHTML5 Doctypeに存在する限り、サイトは常に最新の標準モードで実行されます。
互換表示をオフにする互換表示をオフ
にすると便利な場合があります。これを行うにDisplay all intranet sites in compatibility view
は、互換表示設定でチェックを外します。
Altを押すとメニューが表示され、これを呼び出すことができます。
編集 この回答はIE9にも関係しています。
alt
してツールバーを表示します。ツールの下にあります->互換ビュー設定
これは私にとってはうまくいきます。
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
X-UA-Compatible
メタタグを持つホストされたWebサイト(イントラネット以外のサイト)で、それでもIE10標準ドキュメントモードがページのデフォルトとしてトリガーされない場合、メタタグがスクリプトタグの下にあるか、<head>
DOMツリーの最上部から遠すぎると、IE10は叫んでドキュメントモードをIE8標準に設定します。したがって、IE=edge
メタタグをタグに近づけてください<title>
。Wordpressサイトがヘッダーテンプレートファイルにハードコーディングされていない場合、WordPressサイトの修正は必ずしも簡単ではありません。IE11がメタタグの場所を気にするかどうかはわかりませんが、これが誰かに役立つことを願っています。
頭に次のタグを追加してみてください
<meta http-equiv="X-UA-Compatible" content="IE=11,IE=10,IE=9,IE=8" />
IE=Edge
代わりに
メタタグはイントラネットサイトでは何も実行せず、問題はIE10互換モードでのIE10レンダリングでした。私にとって問題に取り組んだのは、@ Jeowの答えをさらに取り入れweb.config
、IISの下に次のコードを追加することにより、その値をhttpヘッダーで使用することでした。
<system.webServer>
<httpProtocol>
<customHeaders>
<clear />
<!-- <add name="X-UA-Compatible" value="IE=edge" /> not good enough -->
<add name="X-UA-Compatible" value="IE=11,IE=10,IE=9,IE=8" />
</customHeaders>
</httpProtocol>
</system.webServer>
IEの目的のために、イントラネットサイトには、外部にルーティングされない公開向けのサイトが含まれます。たとえば、オフィスで働くStackoverflowの従業員は、おそらく互換モードでstackoverflow.comを参照します。
私が次のことをしたとき、それは私にとって完璧に働きました:
オンhttp://msdn.microsoft.com/en-us/library/gg699338(v=vs.85).aspx
彼らが最初のボックスで提供する正確な例を使用し(</html>
下部に不足している部分を追加)、IE10でそれを開き、標準が強制されました。
私の提案は、空のコードを実際のコンテンツ(単純なもの)に置き換えて、それが何をするかを確認することです。