X ua compatible что это такое
Режимы Internet Explorer
Вокруг Internet Explorer сложилась ситуация, которая больше не прослеживается ни с одним другим браузером — разброс версий начинается с 6.0 и заканчивается 9.0. Причины использования устаревших версий могут быть совершенно разные.
Сама компания Microsoft всячески поощряет переход на новые версии Internet Explorer и в 2010 году прекратила поддержку IE6 и IE7.
Что касается разработчиков сайтов, то для них такой большой набор версий является настоящей проблемой. Каждая версия IE содержит свои уникальные ошибки, особенности отображения веб-страниц, а также не поддерживает какие-то свойства CSS. Одним из радикальных вариантов решения проблемы является полный отказ разработчика от поддержки определенных версий IE. Так, некоторые сервисы Google, сайт vkontakte.ru при попытке зайти на них через IE6 выдают предупреждение о том, что вы используете устаревший браузер. С другой стороны, некоторые разработчики интернет-магазинов бьются за каждый браузер, полагая, что даже если каким-то браузером пользуется 2%, то отказ от него приведет к потере 2% клиентов.
Из-за того, что каждая версия IE может отображать сайт по своему, разработчики IE8 оказались перед сложной дилеммой — эта версия настолько отличалась от предыдущей, что при просмотре через IE8 бо́льшая часть сайтов «рассыпалась». В итоге было принято решение добавить режим представления совместимости; для быстрого переключения сайтов в этот режим возле адресной строки добавлена специальная кнопка (рис. 1.6а). В действительности при переключении в этот режим браузер начинал работать как версия 7.0. В IE9 пошли еще дальше и в нём уже можно переключаться на IE8 или IE7 (рис. 1.6б).
а | б |
Рис. 1.6. Кнопка для переключения в режим совместимости
a — в IE8, б — в IE9
Рис. 1.7. Режимы браузера
Выбор режима браузера определяет следующее:
Агент пользователя представляет собой текстовую строку, отправляемую на сервер для идентификации браузера, его версии и операционной системы. Значение User-Agent определяет не только браузер, но также поисковых пауков и сетевых роботов. Список возможных значений User-Agent и разбор строки можно посмотреть на сайте http://www.useragentstring.com. В табл. 1.1 приведены значения User-Agent при выборе разных режимов IE.
В вашем случае строка User-Agent может отличаться от приведенных в таблице, поскольку она зависит от версии Windows и её параметров.
Вектор версии позволяет с помощью условных комментариев определять версию IE и отдавать для неё отдельный код. Условные комментарии активно применяются в вёрстке для устранения различий в макете между IE и другими браузерами. Подробнее о них пойдёт речь позже, пока же вы можете ознакомиться с небольшим примером, который показывает текст только в IE8. Остальные браузеры игнорируют этот фрагмент, считая его комментарием.
Режим документа меняется с помощью меню в Средствах разработчика (рис. 1.8).
Рис. 1.8. Режимы документа
Начиная с версии IE6, имеются следующие режимы (табл. 1.2).
Режим | Описание |
---|---|
IE5 (режим совместимости) | Несмотря на то, что браузером IE5 уже никто не пользуется, этот режим применяется во всех старших версиях IE при переключении в режим совместимости. Достаточно не указать доктайп и вы, словно на машине времени, вернётесь в прошлый век к отображению в этом браузере. |
IE6 | Этот режим работает только в версии 6.0. |
IE7 | Стандартный режим браузера IE7 и режим при переключении на него в IE8 и IE9. |
IE8 | Стандартный режим браузера IE8 и режим при переключении на него в IE9. |
IE9 | Этот режим работает только в версии 9.0. |
Версия может принимать следующие значения (табл. 1.3).
Значение | Описание |
---|---|
5 | Вынужденное переключение в режим IE5, доктайп при этом игнорируется. |
7 | Вынужденное переключение в режим IE7, доктайп при этом игнорируется. |
8 | Вынужденное переключение в режим IE8, доктайп при этом игнорируется. |
9 | Вынужденное переключение в режим IE9, доктайп при этом игнорируется. |
EmulateIE7 | При наличии доктайпа переключается в режим IE7, в противном случае в режим совместимости. |
EmulateIE8 | При наличии доктайпа переключается в режим IE8, в противном случае в режим совместимости. |
EmulateIE9 | При наличии доктайпа переключается в режим IE9, в противном случае в режим совместимости. |
Edge | Устанавливает документ в наиболее новый доступный режим. Для версии 8.0 это режим IE8, для версии 9.0 это режим IE9. |
К примеру, на сайте Яндекса применяется следующий код для эмуляции режима IE7.
При добавлении данного кода в документ кнопка режима совместимости (рис. 1.6) в браузере исчезает.
IE11: Compatibility List vs. X-UA-Compatible
Подопытная сборка: Windows RT 8.1 на планшете Microsoft Surface. Версию и сборку IE11 см. на скрине в начале поста.
HTML-код, на котором проверялась работа мета-тэга:
Открываем эту страницу с дев-сервера, который живёт на домене из списка совместимости Microsoft (имя домена я не могу привести по понятным причинам):
Проверяем, работает ли мета. Меням content на «IE=EmulateIE7»:
Для чистоты эксперимента снимаем галочку «Use Microsoft compatibility lists»:
(обратите внимание, настройка показа интранета в Compat View отключена для чистоты эксперимента, хотя по факту она ничего не меняет)
Внимательно читаем майкрософтовские документ:
Note that the X-UA-Compatible header has greater precedence than Compatibility View.
Здесь сказано только про http-заголовок X-UA-Compatible, про meta-тэг не слово.
Передаю привет и искреннее восхищение разработчикам из Редмонда, а также местным экспертам с мировым именем.
X ua compatible что это такое
Еще не встречал статьи на русском, где все бы было понятно разложено про X-UA-Compatible тег применительно к самому замечательному в мире браузеру.
Cуществует мета тег X-UA-Compatible, который в зависимости от переданного значения content заставляет различные версии IE отображать документ в том или ином режиме.
Это крутейшая фича для IE, поскольку иногда бывает так, что все вылизано до блеска в IE7, работает в IE9 а в восьмерке распадается. И тогда мы можем не тратить время на восьмерку, подсунув ей мета тег, и все будут счастливы.
Значение IE=5 принудительно переводит браузер в Quirks Mode.
Значения IE=7, IE=8, IE=9, IE10 принудительно переводят браузер в режим стандартов соответствующей версии независимо от DOCTYPE документа.
Значения IE=EmulateIE7, «IE=EmulateIE8″, «IE=EmulateIE9″, «IE=EmulateIE10″ заставляют браузер работать как соответствующая версия браузера. Т.е. если мы используем «IE=EmulateIE8″ в IE9, он будет решать какой режим использовать — quirks, ie7 или ie8 самостоятельно в зависимости от DOCTYPE, и только от него.
Значение IE=edge заставляет браузер переходить в последний доступный стандарт независимо от DOCTYPE.
— будет использован режим IE7 во всех версиях начиная от IE7, но
— будет использован Quirks Mode во всех версиях IE
Internet Explorer 10
В IE10 стало 2 Quirks Mode: ie5 qurks и обычный. Первый включается тегом
, а второй — отсутствием DOCTYPE.
Вот и все хитрости.
Помните, что зачастую многие принимают за причуды IE просто неправильно подобранный режим отображения документа. Всегда проверяйте этот нюанс.
X-UA-совместимые метатеги описание и использование
Для большинства веб-дизайнеров достижения Microsoft в области браузеров означают, что нам больше не приходится сталкиваться с проблемами, которые старая версия IE представляла нам в прошлом. Однако некоторым из нас не так повезло. Если сайт, которым вы управляете, все еще включает в себя значительное количество посетителей из более старой версии IE, или если вы работаете над внутренними ресурсами, такими как интрасеть, для компании, которая по какой-то причине использует одну из этих более старых версий IE, то вы потребуется продолжить тестирование для этих браузеров, даже если они устарели. Один из способов сделать это — использовать режим X-UA-Compatible.
X-UA-Compatible — это метатег режима документа, который позволяет веб-авторам выбирать, в какой версии Internet Explorer должна отображаться страница. Он используется Internet Explorer 8 для указания того, должна ли страница отображаться как IE 7 (представление совместимости) или IE 8 (представление стандартов).
Обратите внимание, что в Internet Explorer 11 режимы документов устарели — они больше не используются. IE11 обновил поддержку веб-стандартов, которые вызывали проблемы со старыми веб-сайтами.
Для этого вы указываете пользовательский агент и версию для использования в содержимом тега:
Опции, которые у вас есть для контента:
Если вы скажете ему использовать версию браузера без эмуляции (т.е.
) браузер отобразит страницу в стандартном режиме независимо от того, существует ли объявление DOCTYPE.
говорит Internet Explorer использовать самый высокий режим, доступный для этой версии IE. Internet Explorer 8 может поддерживать до режимов IE8, IE9 может поддерживать режимы IE9 и так далее.
X-UA-совместимый тип мета-тега :
Метатег X-UA-Compatible является метатегом http-эквивалент.
X-UA-совместимый формат мета-тегов:
Отображать как IE 8 с или без DOCTYPE
Причудливый режим (IE 5)
X-UA-совместимый мета-тег Рекомендуемое использование:
Используйте метатег X-UA-Compatible на веб-страницах, где вы подозреваете, что Internet Explorer 8 попытается отобразить страницу в неправильном представлении. Например, когда у вас есть документ XHTML с объявлением XML. Декларация XML в верхней части документа переведет страницу в представление совместимости, но объявление DOCTYPE должно заставить ее отображаться в виде стандартов.
Проверка в реальных условиях
За что отвечают эти две строки Html кода?
Делаю верстку своей старой работы, верстать начал относительно недавно.
В коде нашел эти две строки, не могу вспомнить за что они отвечают.
И нужно ли их обязательно вставлять всегда?
Спасибо.
большое спасибо за развернутый ответ 🙂
а не подскажите еще, что означают эти строки в самом начале?
Алекс, все правильно, это ie conditional comments
Мета тег viewport отвечает за «оптимизацию» под разные размеры устройства.
https://developer.mozilla.org/ru/docs/Mozilla/Mobi.
Мета тег X-UA-Compatible отвечает за браузеры Microsoft IE8 IE9 IE10 IE11.
qaru.site/questions/10755/what-does-meta-http-equi.
Первый тег настоятельно рекомендую исопльзовать, а второй используйте по надобности, в зависимости от того, нужны ли вам браузера IE
Большое спасибо за подробный ответ и статьи, почитал, примерно понял 🙂
Не подскажите еще, эти строки в самом начале так же как-то связаны с IE и так же наверное лучше оставить для поддержки?
— это указывает на версию html языка. В данном случае, html 5
Не подскажите насколько актуальны и практичны данные строки условных комментариев? Лишними не будут думаю?
Если вы не будете использовать их, то конечно они лишние.
Обратите внимание, что в каждом теге свой набор классов lt-ie9 lt-ie8 lt-ie7. соответственно при таком использовании вы можете к css коде писать отдельные стили для разных версий IE
Если вы этого делать не собираетесь, то и условные комментарии вам не нужны.