web-dev-qa-db-ja.com

サイトで<meta http-equiv = "X-UA-Compatible" content = "IE = 8" />モードを使用するのは良い習慣ですか?

私は最近、サイトのヘッダーに以下を追加する喜びを発見しました:

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

ウェブサイトはうまく機能し、CSSは美しく、人生は良いです。しかし、私はこれがどれほど良い実践であるかについて少し心配していますか?

IE7がインストールされている本当に古いコンピュータはどうですか?そのバージョンのIE7は実際にIE8標準モードにアクセスできますか?

14
Nadine

あなたの質問の最後の部分への短い答えはノーです:IE7はIE8モードで動作させることができません。したがって、X-UA-Compatibleヘッダーは、IEの古いバージョンが新しいバージョンであると考えるように強制することはありません。(それが機能した場合、私たちはすべてcontent="IE-10"と、下位互換性を永遠に心配して終了します)

X-UA-Compatibleフラグは、古いバージョンをエミュレートするために互換モードにフォールバックするようにIEの新しいバージョンに指示します。したがって、content="IE-8"フラグはIE7またはIE8には影響しませんが、IE9をIE8モードに戻します。

つまり、IE9は、下位互換性を維持しようとする試みの名の下に、新しい機能を効果的に破棄します。

これがIE9に必要なものである場合は、必ずX-UA-Compatibleヘッダー。それがあなたが望むものでないなら、それを使わないでください。

(IEの下位互換性モードは、エミュレートしようとしているバージョンの実際のコピーと100%互換性があるとはあまり知られていないため、考えないでください。 IE9で実行されているIE8の完全なコピーを取得すること-通常モードのIE8またはIE9とは異なる独自の癖があること)

24
Spudley

もう1つ注意すべき点は、Microsoftが提供しているタグの例が常に機能するとは限らないことです。読む ドキュメントの互換性の定義 、特にページの下部にあるコミュニティの追加。

ベストプラクティスに関する限り、これらはおそらく最良の長期的なソリューションではありませんが、IE9がリリースされてサイトがダウンしたときに非常に役立ちました。

2
Joe

誰もが正しく言う下位互換性は、完全に機能しないため厳密に必要な場合にのみ適用する必要があります。互換性タグを追加するだけでは、新しいブラウザの機能を古いブラウザに取得できません。

1
spacejunk20

<meta http-equiv=“X-UA-Compatible” content=“IE=8” />モードを追加すると、アプリケーションがブラウザの新しいバージョンの利点を活用できなくなるため、あまりお勧めできません。しかし、<meta http-equiv="X-UA-Compatible" content="IE=Edge" />を追加すると、ブラウザーに最新バージョンの標準のレンダリングを強制するため、良いと思います。

注:Edgeを追加すると、アプリケーションがこの新しいバージョンでテストされない可能性があるため、コードが壊れる可能性があります。ほとんどの場合、これは完全に問題なく機能しますが、あなたにはわかりません。

他の可能なオプションの詳細については、

"X-UA-Compatible" content = "IE = 9; IE = 8; IE = 7; IE = Edge"

0
Pranav Singh

私はWindows 7テスト環境にIE8をインストールしていて、以前にIE7が行ったようにコードの一部をレンダリングします(ありませんcontent = "IE7"私のメタタグで)!
Windows 7 + IE8を搭載した別のマシンでは、コードが異なってレンダリングされますが、私が望む方法です。
http://www.greywyvern.com/?post=31 に興味深い記事があり、IE8がレンダリングする方法はシステムにインストールされているService Packに依存することを伝えています(この記事はXPについてですが、私はWindows 7であり、同じ問題があります)。

だから今私は私のウェブページにcontent = "IE10"を置き、私のウェブサイトはIE10、IE9およびIE8で正しく表示されます。

0
user2219358

Discusを使用していますが、古いバージョンのIEと互換性がありません。私は、ページコードでcontent = "IE-8"を使用するように言った助けを得ました...

content = "IE-8"は、テーブルやテキストのサイズなどを変更するようにブラウザにも指示しました:p私はcontent = "IE-7"に変更しました。

0
Real Hyder