Функциональность IE в сфере совместимости для веб-разработчиков
Веб-разработчики предельно ясно изъявили свое желание увидеть как функциональную совместимость и соответствие стандартам (или "одинаковую разметку") в новых технологиях, так и обратную совместимость для своих существующих веб-узлов. После прочтения
В то время как IE изменяется и обретает поддержку новых технологий, разработчики хотят в некоторых сценариях получить поведение более ранних версий IE. Существует множество различных технологий, позволяющих разработчикам указывать браузеру, как обрабатывать разметку их веб-узлов. Среди основных -
Режим обозревателя и Режим документа
Множество пользователей, оставлявших
Режим обозревателя (Browser Mode) задает, какую
Описание |
IE9 сообщает строку обозревателя (UA), вектор версии и режим документов, соответствующий стандартному поведению браузера, которым в IE9 является наиболее соответствующий стандартам режим. Используйте этот режим, чтобы узнать, как ваш веб-узел будет работать у пользователей IE9. |
IE9 сообщает строку обозревателя (UA), вектор версии и режим документов, как если бы он был IE7; тем не менее, строка UA также включает в себя маркер Trident/5.0, означающий, что браузер на самом деле является IE9. Используйте этот режим, чтобы узнать, как ваш веб-узел будет работать для пользователей IE9, если они нажмут кнопку Просмотр в режиме совместимости. Обратите внимание, что в Средствах разработчика во второй предварительной версии IE9 Platform Preview содержится два пункта Compatibility View, что является известной ошибкой. |
IE9 сообщает строку обозревателя (UA), вектор версии и режим документов, как если бы он был IE8. Используйте этот режим, чтобы узнать, как ваш веб-узел будет работать для пользователей IE8. |
IE9 сообщает строку обозревателя (UA), вектор версии и режим документов, как если бы он был IE7. Используйте этот режим, чтобы узнать, как ваш веб-узел будет работать для пользователей IE7. |
Режим документов (Document Mode) указывает, какой режим будет использован движком IE Trident для отображения разметки, например, в стандартном режиме IE9. Изменение Режима документов обновляет страницу, но не пересылает строку обозревателя (UA) и не получает новую разметку с сервера.
Описание |
Это самое новое, наиболее соответствующее стандартом поведение из всех доступных в IE9. Этот режим является режимом по умолчанию и используется IE9 для отображения веб-страниц, имеющих строгий (strict) или неизвестный тип документа. IE8 Standards Это поведение соответствует IE8, когда он отображает веб-страницу, имеющую строгий или неизвестный тип документа (doctype). |
Это поведение соответствует IE7, когда он отображает веб-страницу, имеющую строгий или неизвестный тип документа (doctype). |
Это поведение соответствует IE, когда он отображает страницу с неуказанным типом документа (doctype) или типом документа Quirks. Это поведение соответствует поведению IE5 и поведению режима Quirks в IE6, IE7 и IE8. |
Изменение Режима документов для вашего веб-узла
Будучи разработчиком, вы выбираете режим документа, который IE будет использовать для отображения вашего веб-узла. По умолчанию это наиболее совместимый и соответствующий стандартам режим. В IE9 это режим IE9 Standards. Если вы считаете нужным, вы можете изменить это умолчание, указав
Наиболее удобным способом для изменения режима документов для определенной веб-страницы является использование
В дополнение к значениям X-UA-Compatible,
Описание |
Emulate IE9 указывает IE использовать значение типа документа (doctype) для определения того, как отображать содержимое. Веб-страницы с неуказанным типом документа или типом документа Quirks будут отображаться в режиме Quirks. Все остальные типы документов будут отображаться в режиме IE9 Standards. |
IE9 указывает IE отображать всё в режиме IE9 Standards и игнорировать тип документа (doctype). |
При ориентации на режим IE9 Standards мы призываем веб-разработчиков использовать тип документа (doctype) и не использовать мета-тег X-UA-Compatible или HTTP-заголовок. Это позволяет всем нам достичь общей цели в работе с одинаковой разметкой, основанной на стандартах.
Если вы работаете с устаревшим веб-узлом, полагающемся на режим стандартов в понимании IE7, используйте мета-тег X-UA-Compatible или HTTP-заголовок, чтобы добиться режима IE7 Standards. Ниже приведен пример, совмещающий значения таким образом, что IE8 отображает веб-страницу в режиме IE7 Standards, в то время как IE9 отображает ее в режиме IE9 Standards:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7; IE=EmulateIE9">
</head>
<body>
</body>
</html>
Чтобы применить этот результат одновременно ко многим страницам, вы можете изменить HTTP-заголовок и перенести это поведение на некоторые или все страницы на серверах
Чтобы достичь цели "одинаковой разметки", в IE9, по сравнению с IE8, было внесено еще одно изменение. Все плавающие фреймы (iframe) внутри страницы верхнего уровня, отображающейся в режиме IE9 Standards, также будут отображаться в режиме IE9 Standards. Единственным исключением являются плавающие фреймы, для которых указан режим
Обнаружение функций, не браузеров (или Избегайте условных комментариев)
Мы хотим использовать одну и ту же соответствующую стандартам разметку, как другие браузеры, в режиме IE9 Standards. Именно поэтому мы советуем разработчикам при ориентации на режим стандартов IE9 и режим стандартов других браузеров использовать
Мы настоятельно рекомендуем использовать обнаружение функций и поведения вместо
Есть лишь один случай, когда приемлемо использовать условные комментарии - это обеспечение обратной совместимости таблиц стилей в IE6 или IE7. Например, такие узлы как
<!--[if IE 7]><link rel="stylesheet" href="http://css.hsn.com/css/ie7.css?v96" type="text/css" /><![endif]-->
IE9 продолжит поддерживать условные комментарии для обеспечения обратной совместимости с существующими веб-узлами. Вот несколько правил, которые помогут вам применить условные комментарии:
- Условные комментарии по умолчанию связаны со строкой обозревателя (UA). Использование мета-тега X-UA-Compatible или HTTP-заголовка позволяет веб-странице указывать определенную версию для совместимости. Если указанное значение X-UA-Compatible превышает используемую версию IE (8 в IE8, 9 в IE9) или является меньше 7, то вместо версии, заявленной в значении X-UA-Compatible, по-прежнему будет использоваться значение строки обозревателя (UA).
- Версия IE, отправляемая в строке обозревателя (UA), используется для оценки условных комментариев. Это называется вектором версии (Version Vector). Например, строка обозревателя (UA) IE7 будет иметь вектор версии 7 и условный комментарий <!--[if IE 7]> будет оценен как истинный. IE9 будет отправлять только одну из двух строк обозревателя: строку IE9 или строку режима совместимости (Compat View).
Условные комментарии оцениваются в зависимости от следующего вектора версии |
9 |
7 |
Подводя итог сказанному выше: условные комментарии можно использовать для считывания CSS, предназначенного для IE6 или IE7. Для всего остального используйте обнаружения функций и поведения.
Обновленная диаграмма Как IE9 определяет режим документов
Чтобы проиллюстрировать, как все эти технологии работают вместе, я обновил диаграмму
Марк Силби (Marc Silbey)
Руководитель команды разработчиков
Источник:
Перевод: Sibiryak
По теме
- Еще пару слов о защите пользователей IE9 от отслеживания
- [Temp] Бенчмарк HTML5 Blizzard: проверьте аппаратное ускорение вашего браузера
- [Temp] Работаем с закрепление сайтов
- Блог IE в 2010: на связи с вами
- С новым аппаратно-ускоренным годом!
- HTML5: экспериментальный и готовый к использованию
- Доступно декабрьское накопительное обновлениие безопасности для IE
- IE9 и конфиденциальность: введение в защиту от слежения
- Более быстрый и умный список Compatibility View List в IE9
- Субпиксельные шрифты в Internet Explorer 9