2011-09-04 10 views
8

私は...X-UA対応のポイントは何ですか?

何のためにあるのか<meta http-equiv="X-UA-Compatible" content="..." />すべてでを理解していない誰かが、それはcontentの異なる値に対して何...

  • を説明できますか?
  • これは、ブラウザごとに何が省略されていますか?
  • その動機は何ですか?
  • なぜ存在するのですか?
+1

さて、これらの異なる値の「コンテンツ」は何ですか? – BoltClock

+0

@BoltClock - "IE =縁" "IE = 5" "IE = EmulateIE7" "IE = 7" "IE = EmulateIE8" "= 8 IE" "IE = EmulateIE9 " IE = 9 " –

答えて

14

Internet Explorerブラウザのさまざまなバージョンでさまざまなバグや不完全な実装に対応するのは恐ろしいハックです。たとえば、この:

<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7"> 

は、それはあなたのサイトはIE7ではなく、IE9で動作する場合に発生する可能性のあるすべての問題を回避するために、本当にIE7だふりをIE9に指示します。

+1

IEの下位互換性モードを意図的に使用することは正当な理由で非常に難しいことですが、すべてのコストを極力避けることができますが、content =" IE = Edge "を使うと便利です。互換モード:IE自身がデフォルトで互換モードを使用するように設定されている場合、 'IE = edge'を使用するとIEを標準モードに戻します。 – Spudley

+0

イントラネットサイトでは互換モードを無効にする必要があります。詳細はhttps://stackoverflow.com/a/26348511/601197を参照してください。 – AhsenB

21

このメタタグ(またはhttpヘッダー)はIE8以上でのみ意味があります。これは、IEに古いバージョンのようにページをレンダリングさせる方法です。これを省略すると効果はなく、使用すると効果があるだけです。

可能な値は、「IEは=」次のいずれかに続いて、次のとおりです。 - IEの最新バージョンは

  • はIE9で何としてレンダリング -

    • エッジ標準モードでIE9としてレンダリング
    • エミュレートIE9 - IE9としてレンダリングが、
    • IE8モードを決定するために<!DOCTYPE>を使用する - 標準モードでIE8よう
    • エミュレートIE8のレンダリング - IE8としてレンダリングが、determに<!DOCTYPE>を使用標準モードでIE7としてレンダリング
    • エミュレートIE7 - - IE7としてレンダリングが、モード
    • IE5を決定するために<!DOCTYPE>を使用 - またQuirksモードで IE7よう

    をレンダリングモード

  • IE7 INEカンマの後にChrome = 1を追加して、Google Chrome Frameがインストールされている場合、IEにページをレンダリングするように指示することができます。

    <meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=IE8"> 
    

    :その代わりに、あなたはまた、IEの特定のバージョンのために、以下のようにのためにGCFを使用するように指定することができ、

    <meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1"> 
    

    または:だから、このようになりますタグを持っているかもしれませんつまり、GCFがインストールされていてIEがバージョン8以下にある場合は、IEの最新バージョンとしてレンダリングされます。

    IEの古いバージョンにGCFを使用できるようにすることは有益であることは明らかですが、これはMicrosoftの意図ではありませんでした。これは、古いバージョンのIEでしか動作しない、簡単に修正できない古いサイトとの互換性のために使用できますが、それはまあまあです。個人的に、私はそれがテストのために有用であると感じます。1つの開発マシンから複数のバージョンのIEをテストするのはそれほど簡単ではないので、これはまともな解決策を提供します。

  • +3

    偉大な回答ですが、読者は[Google Chrome Frameは2014年1月に廃止されました](http://blog.chromium.org/2013/06/retiring-chrome-frame.html) –

    関連する問題