Обновление за октябрь 2015
Этот ответ был опубликован несколько лет назад, и теперь вопрос действительно должен быть, стоит ли задумываться об использовании X-UA-Compatible
тега на вашем сайте? с изменениями, которые Microsoft внесла в свои браузеры (подробнее об этом ниже).
В зависимости от того, какие браузеры Microsoft вы поддерживаете, вам может не понадобиться продолжать использовать X-UA-Compatible
тег. Если вам нужно поддерживать IE9 или IE8, то я бы порекомендовал использовать тег. Если вы поддерживаете только самые последние версии браузеров (IE11 и / или Edge), я бы рекомендовал вообще отказаться от этого тега. Если вы используете Twitter Bootstrap и вам необходимо исключить предупреждения проверки, этот тег должен отображаться в указанном порядке. Дополнительная информация ниже:
X-UA-Compatible
Мета тег позволяет веб - авторам , чтобы выбрать , какая версию Internet Explorer страница должна быть оказана в качестве. IE11 внес изменения в эти режимы; см. примечание IE11 ниже. Microsoft Edge , браузер, который заменил IE11, учитывает метатег только X-UA-Compatible
при определенных обстоятельствах. См. Примечание Microsoft Edge ниже.
По словам Microsoft, при использовании X-UA-Compatible
тега он должен быть как можно выше в вашем документе head
:
Если вы используете мета-тег X-UA-Compatible, вы хотите разместить его как можно ближе к верху заголовка страницы. Internet Explorer начинает интерпретацию разметки с использованием последней версии. Когда Internet Explorer обнаруживает мета-тег, совместимый с X-UA, он запускается заново с использованием механизма указанной версии. Это снижение производительности, потому что браузер должен остановиться и перезапустить анализ содержимого.
Вот ваши варианты:
- "IE = край"
- "IE = 11"
- "IE = EmulateIE11"
- "IE = 10"
- "IE = EmulateIE10"
- "IE = 9"
- «IE = EmulateIE9
- "IE = 8"
- "IE = EmulateIE8"
- "IE = 7"
- "IE = EmulateIE7"
- "IE = 5"
Чтобы попытаться понять, что означает каждый из них, вот определения, предоставленные Microsoft:
Internet Explorer поддерживает несколько режимов совместимости документов, которые включают различные функции и могут влиять на способ отображения содержимого:
В пограничном режиме Internet Explorer отображает содержимое в самом высоком доступном режиме. В Internet Explorer 9 это эквивалентно режиму IE9. Если в будущем выпуске Internet Explorer будет поддерживаться режим более высокой совместимости, страницы, переведенные в граничный режим, будут отображаться в самом высоком режиме, поддерживаемом этой версией. Эти же страницы будут по-прежнему отображаться в режиме IE9 при просмотре с помощью Internet Explorer 9. Internet Explorer поддерживает несколько режимов совместимости документов, которые включают различные функции и могут влиять на способ отображения содержимого:
Режим IE11 обеспечивает высочайшую поддержку, доступную для существующих и развивающихся отраслевых стандартов, включая HTML5, CSS3 и другие.
Режим IE10 обеспечивает высочайшую поддержку, доступную для установленных и появляющихся отраслевых стандартов, включая HTML5, CSS3 и другие.
Режим IE9 обеспечивает высочайшую поддержку, доступную для установленных и разрабатываемых отраслевых стандартов, включая HTML5 (рабочий проект), спецификацию каскадных таблиц стилей W3C уровня 3 (рабочий проект), спецификацию масштабируемой векторной графики (SVG) 1.0 и другие. [Примечание редактора: IE 9 не поддерживает анимацию CSS3].
Режим IE8 поддерживает множество установленных стандартов, включая спецификацию каскадных таблиц стилей W3C уровня 2.1 и API селекторов W3C; он также обеспечивает ограниченную поддержку спецификации уровня 3 каскадных таблиц стилей W3C (рабочий проект) и других новых стандартов.
В режиме IE7 контент отображается так, как если бы он отображался в стандартном режиме Internet Explorer 7, независимо от того, содержит ли страница директиву.
Режим эмуляции IE9 указывает Internet Explorer использовать директиву для определения способа отображения содержимого. Директивы стандартного режима отображаются в режиме IE9, а директивы режима совместимости отображаются в режиме IE5. В отличие от режима IE9, режим эмуляции IE9 соответствует директиве.
Режим эмуляции IE8 указывает Internet Explorer использовать директиву для определения способа визуализации содержимого. Директивы режима стандартов отображаются в режиме IE8, а директивы режима причуд отображаются в режиме IE5. В отличие от режима IE8, режим эмуляции IE8 соответствует директиве.
Режим эмуляции IE7 указывает Internet Explorer использовать директиву для определения способа отображения содержимого. Директивы режима стандартов отображаются в стандартном режиме Internet Explorer 7, а директивы режима причуд отображаются в режиме IE5. В отличие от режима IE7, режим эмуляции IE7 соответствует директиве. Для многих веб-сайтов это предпочтительный режим совместимости.
В режиме IE5 содержимое отображается так, как если бы оно отображалось в режиме совместимости Internet Explorer 7, что очень похоже на то, как содержимое отображалось в Microsoft Internet Explorer 5.
IE10 ПРИМЕЧАНИЕ: Начиная с IE10, режим совместимости ведет себя иначе, чем в предыдущих версиях браузера. В IE9 и более ранних версиях режим причуд ограничивал веб-страницу функциями, поддерживаемыми IE5.5. В IE10 режим совместимости соответствует различиям, указанным в спецификации HTML5.
Лично я всегда выбираю http-equiv="X-UA-Compatible" content="IE=edge"
метатег, так как в старых версиях есть много ошибок, и я не хочу, чтобы IE решил перейти в «Режим совместимости» и показать свой сайт как IE7 против IE8 или 9. Я всегда предпочитаю последнюю версию IE.
IE11
От Microsoft :
Начиная с IE11, режим края является предпочтительным режимом документа; он представляет самую высокую поддержку современных стандартов, доступных для браузера.
Используйте объявление типа документа HTML5 для включения режима края:
<!doctype html>
Пограничный режим был представлен в Internet Explorer 8 и был доступен в каждом последующем выпуске. Обратите внимание, что функции, поддерживаемые пограничным режимом, ограничены функциями, поддерживаемыми конкретной версией браузера, отображающей содержимое.
Начиная с IE11, режимы документов устарели и больше не должны использоваться, кроме как на временной основе. Обязательно обновляйте сайты, которые используют устаревшие функции и режимы документов, чтобы соответствовать современным стандартам.
Если вам необходимо настроить таргетинг на конкретный режим документа, чтобы ваш сайт функционировал, пока вы переделываете его для поддержки современных стандартов и функций, имейте в виду, что вы используете переходную функцию, которая может быть недоступна в будущих версиях.
Если в настоящее время вы используете заголовок, совместимый с x-ua, для таргетинга на унаследованный режим документов, возможно, ваш сайт не будет соответствовать наилучшим возможностям IE11.
Microsoft Edge (замена для Internet Explorer, поставляемого в комплекте с Windows 10)
Информация о X-UA-Compatible
метатеге для "Edge" версии IE. От Microsoft :
Представляем «живой» режим пограничного документа
Как мы объявили в августе 2013 года, мы не поддерживаем режимы документов начиная с IE11. С нашими последними обновлениями платформы потребность в устаревших режимах документов в основном ограничивается устаревшими веб-приложениями Enterprise. С новыми архитектурными изменениями эти устаревшие режимы документов будут изолированы от изменений в «живом» режиме Edge, что поможет гарантировать гораздо более высокий уровень совместимости для клиентов, которые зависят от этих режимов, и поможет нам еще быстрее перейти к улучшениям в Edge , IE будет по-прежнему соблюдать режимы документов, обслуживаемые сайтами интрасети, сайтами в списке совместимости и только при использовании в режиме предприятия.
Общедоступные интернет-сайты будут отображаться с новой платформой режима Edge (игнорируя X-UA-Compatible). Нашей целью является то, что отсюда Edge - это «живой» режим документа, и в дальнейшем никаких дальнейших режимов документа не будет.
С изменениями в Microsoft Edge, которые больше не поддерживают режимы документов в большинстве случаев, у Microsoft появился инструмент для сканирования вашего сайта, чтобы проверить, есть ли на нем код, несовместимый с Edge.
Chrome = 1 информация для IE
Существует также , chrome=1
что вы можете использовать или использовать совместно с одним из представленных выше опций , таких как: <meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1">
. chrome=1
предназначен для Google Chrome Frame, который определяется как:
Google Chrome Frame - это подключаемый модуль браузера с открытым исходным кодом. Пользователи, у которых установлен подключаемый модуль, имеют доступ к открытым веб-технологиям Google Chrome и быстрому движку JavaScript при открытии страниц в браузере.
Google Chrome Frame легко повышает удобство работы в Internet Explorer. Он отображает сайты с поддержкой Google Chrome Frame с использованием технологии рендеринга Google Chrome, предоставляя вам доступ к новейшим функциям HTML5, а также к функциям производительности и безопасности Google Chrome, никоим образом не прерывая обычное использование браузера.
Когда установлен Google Chrome Frame, Интернет становится еще лучше, и вам не нужно об этом думать.
Но чтобы этот плагин работал, вы должны использовать его chrome=1
в X-UA-Compatible
метатеге.
Более подробную информацию о Chrome Frame можно найти здесь .
Примечание. Google Chrome Frame работает только с IE6 по IE9 и был удален 25 февраля 2014 года. Дополнительную информацию можно найти здесь . Спасибо @mck за ссылку.
Проверка:
HTML5 :
Страница будет подтверждена с использованием W3 Validator только при использовании <meta http-equiv="X-UA-Compatible" content="IE=Edge">
. Для других значений будет выдано сообщение об ошибке: A meta element with an http-equiv attribute whose value is X-UA-Compatible must have a content attribute with the value IE=edge.
Другими словами, если оно у вас есть, IE=edge,chrome=1
оно не будет проверено. Я полностью игнорирую эту ошибку, так как современные браузеры просто игнорируют эту строку кода.
Если у вас должен быть полностью действительный код, рассмотрите возможность сделать это на уровне сервера, установив заголовок HTTP. В качестве примечания Microsoft говорит: If both of these instructions are sent (meta and HTTP), the developer's preference (meta element) takes precedence over the web server setting (HTTP header).
см . Ответ olibre или bitinn за более подробной информацией о том, как установить HTTP-заголовок.
XHTML
Нет проблем с проверкой при использовании, <meta http-equiv="X-UA-Compatible" content="IE=Edge" />
если тег правильно закрыт (т. />
Е. Против >
).
Twitter Bootstrap
Этот тег настоятельно рекомендуется командой Bootstrap по крайней мере с 2014 года, и Bootlint , линтер , созданный командой twbs, продолжает выдавать предупреждение, если тег пропущен. Линтер различает предупреждения и ошибки, и поэтому серьезность пропуска этого тега может считаться незначительной.
Для получения дополнительной информации X-UA-Compatible
см. Веб-сайт Microsoft, определяющий совместимость документов .
Для получения дополнительной информации о том, что поддерживает IE, см. Caniuse.com .
Для получения дополнительной информации о требованиях Twitter Bootstrap см. Вики-страницу проекта bootlint .
Используйте
content=
"IE=edge,chrome=1"
Пропустить другиеX-UA-Compatible
режимыЗначок
« Нет совместимости». В адресной строке IE9 не отображается кнопка «Просмотр совместимости»,
а на странице также не видны перепутанные меню, изображения и текстовые поля.
Возможности
Этот метатег требуется включить
javascript::JSON.parse()
в IE8(даже если
<!DOCTYPE html>
он присутствует)Корректность
рендеринга / исполнения современных HTML / CSS / JavaScript более корректна (приятнее).
Производительность
Механизм рендеринга Trident должен работать быстрее в граничном режиме.
Применение
В вашем HTML
IE=edge
означает, что IE должен использовать последнюю (крайнюю) версию своего движка рендерингаchrome=1
означает, что IE должен использовать движок рендеринга Chrome, если он установленИли лучше в конфигурации вашего веб-сервера:
(см. Также ответ RiaD )
Apache как предложено pixeline
Nginx, предложенный Stef Pause
Лаки прокси как предложено Лукасом Рютцелем
IIS (начиная с версии 7)
Microsoft рекомендует режим Edge начиная с IE11
Как заметил Линда (см. Комментарии), для изменения совместимости в IE11 рекомендуется режим Edge :
Но позиция Microsoft была неясной. Другая страница MSDN не рекомендует Edge mode :
Вместо этого Microsoft рекомендовала использовать
<!DOCTYPE html>
:В виде Рикардо объясняет (в комментариях ниже), любой DOCTYPE (HTML4, XHTML1 ...) может использоваться для запуска режима стандартов, а не только DOCTYPE HTML5. Важно всегда иметь DOCTYPE на странице.
Клара Онагер даже заметила в более старой версии Указание устаревших режимов документов :
Это так сбивает с толку, что Усман Y думал, что Клара Онагер говорит о:
Хорошо ... В остальной части этого ответа я даю больше объяснений, почему использование
content="IE=edge,chrome=1"
является хорошей практикой в производстве.история
В течение многих лет (с 2000 по 2008 год) доля рынка IE составляла более 80% . И IE v6 считался стандартом де-факто (доля рынка от 80% до 97% в 2003 , 2004, 2005 и 2006 годах только для IE6, большая доля рынка со всеми версиями IE).
Поскольку IE6 не соблюдал веб-стандарты , разработчики должны были протестировать свой веб-сайт с использованием IE6. Эта ситуация была велика для Microsoft (MS) , как веб - разработчики должны были купить MS продукцию (например , IE не может быть использована без покупки Windows), и это было более доходные остаться несоответствующим (т.е. Microsoft хочет стать стандартом исключая другие компании).
Поэтому многие сайты были совместимы только с IE6, и, поскольку IE не был совместим с веб-стандартом, все эти веб-сайты не были хорошо отображены в браузерах, соответствующих стандартам. Хуже того, многие сайты требуют только IE .
Однако в это время Mozilla начала разработку Firefox, максимально соблюдая все веб-стандарты (другой браузер был реализован для отображения страниц, как это было сделано в IE6). Поскольку все больше веб-разработчиков хотели использовать новые функции веб-стандартов, Firefox все больше и больше веб-сайтов поддерживали больше, чем IE.
Когда доля IE на рынке сокращалась, MS поняла, что оставаться несовместимым со стандартом не очень хорошая идея. Поэтому MS начала выпускать новую версию IE (IE8 / IE9 / IE10), все больше и больше уважающую веб-стандарты.
Веб-несовместимая проблема
Но проблема заключается во всех веб-сайтах, разработанных для IE6: Microsoft не может выпускать новые версии IE, несовместимые с этими старыми веб-сайтами, разработанными для IE6. Вместо того, чтобы выводить версию IE для веб-сайта, MS попросила разработчиков добавить дополнительные данные (
X-UA-Compatible
) на свои страницы.IE6 все еще используется в 2016 году
В настоящее время IE6 все еще используется (0,7% в 2016 году) (4,5% в январе 2014 года), а некоторые интернет-сайты по-прежнему совместимы только с IE6. Некоторые интранет-сайты / приложения тестируются с использованием IE6. Некоторые интранет-сайты работают на 100% только на IE6. Эти компании / отделы предпочитают отложить стоимость миграции: другие приоритеты, никто больше не знает, как реализован веб-сайт / приложение, обанкротился владелец унаследованного веб-сайта / приложения ...
На долю Китая приходится 50% использования IE6 в 2013 году, но он может измениться в последующие годы по мере распространения китайского дистрибутива Linux .
Будьте уверены в своих навыках в Интернете
Если вы (пытаетесь) уважать веб-стандарт, вы всегда можете использовать его
http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"
. Чтобы сохранить совместимость со старыми браузерами, просто избегайте использования новейших веб-функций: используйте подмножество, поддерживаемое самым старым браузером, который вы хотите поддерживать. Или, если вы хотите пойти дальше, вы можете принять такие концепции, как постепенная деградация , прогрессивное улучшение и ненавязчивый JavaScript . (Вам также может быть приятно прочитать, что должен учитывать веб-разработчик? )Не заботьтесь о лучшем рендеринге версий IE: это не ваша работа, так как браузеры должны соответствовать веб-стандартам. Если ваш сайт соответствует стандарту и использует умеренно новейшие функции, то браузеры должны соответствовать вашему сайту .
Более того, поскольку существует множество кампаний по уничтожению IE6 ( IE6 не более , кампания MS ), в настоящее время вы можете не тратить время на тестирование IE!
Личный опыт IE6
В 2009–2012 годах я работал в компании, использующей IE6, насколько позволял официальный браузер . Я должен был реализовать интранет-сайт только для IE6. Я решил соблюдать веб-стандарт, но используя подмножество IE6 (HTML / CSS / JS).
Это было сложно, но когда компания перешла на IE8, веб-сайт все еще хорошо отображался, потому что я использовал Firefox и firebug для проверки совместимости веб-стандартов;)
источник
Starting with IE11, edge mode is the preferred document mode; it represents the highest support for modern standards available to the browser.
Разница в том, что, если вы укажете только
DOCTYPE
, настройки просмотра совместимости IE имеют приоритет. По умолчанию эти настройки переводят все сайты интрасети в режим совместимости независимо отDOCTYPE
. Также имеется флажок для использования представления совместимости для всех веб-сайтов, независимо отDOCTYPE
.X-UA-Compatible
переопределяет настройки представления совместимости, поэтому страница будет отображаться в стандартном режиме независимо от настроек браузера. Это заставляет режим стандартов для:DOCTYPE
один не может этого сделать; Вы окажетесь в одном из режимов просмотра совместимости в этих случаях независимо отDOCTYPE
.Если
meta
указан тег и заголовок HTTP,meta
тег имеет приоритет.Этот ответ основан на изучении полных правил выбора режима документа в IE8 , IE9 и IE10 . Обратите внимание, что просмотр
DOCTYPE
самого последнего отступления для выбора режима документа.источник
Используйте это, чтобы заставить IE скрывать эту раздражающую кнопку совместимости браузера в адресной строке:
источник
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
сchrome=1
директивой так подсказывает IE6, 7, 8 пользователей установить / использовать Chrome Frame . Даже HTML5 Boilerplate использует его.<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
с того дня, как он вышел без проблем вообще. На самом деле, я уже избавил свою команду и себя от сотен головных болей, заставив пользователей IE использовать свой последний движок для рендеринга страниц, которые мы создаем. В отличие от вас и Microsoft, я рекомендую всем использовать вышеуказанный метатег каждый раз . Пока IE все еще существует, мы будем «вынуждены» использовать этот метатег: p<meta http-equiv="X-UA-Compatible" content="IE=10">
. Затем он сообщает о себе как Microsoft Internet Explorer.Поскольку я не могу добавить комментарий к помеченному ответу, я просто опубликую это здесь.
В дополнение к правильному ответу вы действительно можете это подтвердить. Поскольку этот метатег предназначен только для IE, все, что вам нужно сделать, это добавить условный IE.
Выполнение этого аналогично добавлению любого другого условного оператора IE и работает только для IE, и никакие другие браузеры не будут затронуты.
источник
Я думаю, что эта диаграмма от Microsoft объясняет все. Чтобы сообщить IE, как отображать содержимое,! DOCTYPE должен работать с метатегом X-UA-Compatible. ! DOCTYPE сам по себе не влияет на изменение режима документа IE.
http://ie.microsoft.com/testdrive/ieblog/2010/Mar/02_HowIE8DeterminesDocumentMode_3.png
источник
Просто для полноты, вам на самом деле не нужно добавлять его в ваш HTML (который неизвестен http-эквивалент в HTML5)
Сделайте это и никогда не оглядывайтесь назад (первый пример для apache , второй для nginx )
источник
Bad value X-UA-Compatible for attribute http-equiv on element meta.
- Это не значит, что она не будет работать. Это просто неверный код.Всего лишь одно предложение сказать « Поручить Internet Explorer использовать новейший движок рендеринга».
источник
Чтобы эта линия работала должным образом, убедитесь, что:
<head>
<html>
элементаВ противном случае некоторые версии IE просто игнорируют его.
ОБНОВИТЬ
Эти два правила упрощены, но их легко запомнить и проверить. Несмотря на то, что в документах MSDN указано, что вы можете поместить заголовок и другие метатеги перед этим, я бы не рекомендовал делать это.
Как заставить это работать с условными комментариями.
Интересная статья о порядке элементов в голове. (blogs.msdn.com, для IE)
ССЫЛКА
Из документации MSDN :
источник
если вы используете свой веб-сайт в той же сети, что и сервер, IE любит переключаться в режим совместимости, несмотря на DOCTYPE.
Добавление
meta http-equiv="X-UA-Compatible" content="IE=Edge"
отключает это нежелательное поведение.источник
Это буквально 1 запрос Google , но здесь идет:
http://msdn.microsoft.com/en-us/library/jj676915(v=vs.85).aspx
Также среди результатов поиска есть:
источник
2.1.3.5 Метатег X-UA-совместимости и заголовок ответа HTTP
Эта функциональность не будет реализована ни в одной версии Microsoft Edge.
См. Https://msdn.microsoft.com/en-us/library/ff955275(v=vs.85).aspx
Да, я знаю, что опаздываю на вечеринку, но у меня были некоторые проблемы и обсуждения, и в конце концов мой начальник заставил меня убрать
X-UA-Compatible
метку со всех документов, над которыми я работал.Если эта информация устарела или больше не актуальна, пожалуйста, исправьте меня.
источник