Статьи

Microsoft удаляет условные комментарии в IE10

Microsoft добавила множество функций в Internet Explorer за эти годы. Несколько революционизировали сеть навсегда (XMLHttpRequest, DOM, инструменты XML, встраивание шрифтов, дополнения для браузера). Некоторые никогда не завоевывали популярность. Некоторые были действительно ужасны.

Команда намеревается удалить некоторые из менее успешных унаследованных функций в IE10 (возможно, они читают № 7 за 10 способов, которыми Microsoft может заставить нас снова полюбить IE ?) Я подозреваю, что вы никогда не кодировали острова данных XML и поведение элементов, но вы Мы почти наверняка использовали условные комментарии. Они собираются исчезнуть из IE навсегда.

Условные комментарии 101

Обеспечение работы вашего веб-сайта или приложения во всех браузерах — непростая задача. Это становится особенно трудным, когда вам приходится поддерживать старые версии Internet Explorer. IE6 был выпущен в 2001 году, IE7 в 2006 году, а IE8 появился в 2009 году. Независимо от вашего мнения о Microsoft, не стоит ожидать, что 10-летний браузер будет отображать то же самое, что Firefox 5 или Chrome 12.

Веб-разработчики особенно не любят IE6. Много месяцев уходит на создание фантастических веб-сайтов и приложений, и они обнаруживают, что в одиннадцатый час они ломаются в IE6. К счастью:

  • Ошибки IE6 хорошо документированы, и можно преодолеть большинство проблем, особенно если вы тестируете рано и часто.
  • Microsoft предоставляет условные комментарии, чтобы разработчики могли добавлять собственные CSS и исправления сценариев, предназначенные для конкретной версии IE.

Изучите источник практически любой страницы HTML5, и вы найдете этот код в head

 
<!--[if lt IE 9]>
<script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->

Он загружает оболочку в IE8 и ниже, что позволяет разработчику разрабатывать новые элементы HTML5, такие как headerarticlefooter Это не требуется в IE9 и других браузерах с собственной поддержкой HTML5 — они игнорируют скрипт.

Условные комментарии невероятно полезны, но лично мне всегда было немного неудобно их использовать:

  1. Они пахнут немного как браузер нюхает — что воняет .
  2. Они редко нужны. Большинство проблем IE6 можно решить с помощью дисплея: встроенный; здесь или позиция: относительная; там. Хотя конкурирующие браузеры не требуют этих свойств, они не оказывают негативного влияния, кроме нескольких байтов дополнительной пропускной способности. Я предпочитаю свои свойства CSS в одном месте, а не распределять между двумя или более файлами.
  3. Условные комментарии нарушены. Мне посчастливилось работать в системах, где разработчики создавали три или четыре отдельные таблицы стилей, предназначенные для отдельных браузеров. Простые обновления свойств требовали внесения изменений в каждый файл.

Зачем удалять условные комментарии?

IE8 обычно ведет себя хорошо, и вам понадобится только HTML5-шим ( см. Выше ). За некоторыми исключениями CSS3, IE9 отображает так же, как любой другой браузер. Надеемся, что IE10 догонит — или даже превзойдет — Firefox, Chrome, Opera и Safari.

Условные комментарии не требуются. Нет необходимости в «[if IE 10]», потому что страницы будут отображаться (в основном) одинаково во всех современных браузерах.

Тем не менее, это не конец обнаружения функций и прогрессивного улучшения. Не каждый браузер поддерживает преобразования CSS3, веб-сокеты, геолокацию и хранение на стороне клиента. Даже с поддержкой пользователь часто может отключить или отказать в разрешении на операцию.

Кроме того, условные комментарии не исчезнут из IE6, 7, 8 и 9. Вы можете настроить таргетинг на эти браузеры, если возникнет такая необходимость, но со временем она станет менее необходимой.

Я приветствую решение Microsoft. Это смелый шаг, поскольку они могли легко сохранить условные комментарии, и я подозреваю, что его удаление приведет в ужас некоторых разработчиков. Тем не менее, компания придерживается своей философии «одинаковой разметки» и гарантирует, что HTML, CSS и JavaScript просто работают независимо от браузера или версии.

Это правильно. Будем надеяться, что исчезновение ActiveX, Compatibility View и старых панелей инструментов IE7 не будет слишком далеко позади!