Использование <meta http-equiv = "X-UA-Compatible" content = "IE = 8" /"> режим на сайтах хорошая практика?
Недавно я обнаружил радости добавления следующего в заголовок сайтов:
<meta http-equiv="X-UA-Compatible" content="IE=8" />
Веб-сайты просто работают, CSS красив, а жизнь хороша. Но я немного обеспокоен тем, насколько хороша такая практика?
Как насчет действительно старого компьютера, на котором установлен IE7? Может ли эта версия IE7 фактически получить доступ к стандарту IE8?
Ответы
Ответ 1
Короткий ответ на последнюю часть вашего вопроса - нет: 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% совместимы с реальными копиями версии, которую они пытаются подражать, поэтому не думайте, что вы получите идеальная копия IE8, работающая в IE9, - она будет иметь собственные причуды, которые отличаются от IE8 или IE9 в обычном режиме)
Ответ 2
Еще одна вещь, о которой стоит помнить, - это то, что предоставленные тегом теги не всегда работают. прочитайте определение совместимости документов, особенно дополнения сообщества в нижней части страницы.
Что касается лучшей практики, это, вероятно, не лучшее долгосрочное решение, но очень удобно, когда IE9 был выпущен, а сайты пошли вниз.
Ответ 3
У меня установлен IE8 в тестовой среде Windows 7, и он отображает некоторые части моего кода, как это делал IE7 раньше (в моих мета-тегах нет content = "IE7" )! < ш > На другой машине с Windows 7 + IE8 код отображается другим, но так, как я хочу.
Есть интересная статья в http://www.greywyvern.com/?post=313, в которой говорится, что способ, которым IE8 оказывает влияние, зависит от пакета обновления, установленного в системе (статья касается XP, но мой Windows 7, и у меня такая же проблема).
Итак, теперь я помещаю content = "IE10" на свои веб-страницы, и мой сайт правильно отображается в IE10, IE9 и IE8.
Ответ 4
Я использую Discus, он несовместим со старыми версиями IE. Я получил помощь, которую они сказали, чтобы использовать контент = "IE-8" в моем коде страницы...
content = "IE-8" также сказал моему браузеру изменить размеры таблиц и текстов и т.д.: p Я изменился на content = "IE-7" , он отлично работает.
Ответ 5
Добавление режима <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"
Ответ 6
Обратная совместимость, справедливо заявленная всеми, должна применяться только тогда, когда она строго требуется, так как она не работает отлично, и нет, вы не можете использовать функции нового браузера для старого браузера, просто добавив тег совместимости.