IEBlog обратился к веб-дизайнерам с просьбой покончить с множеством хаков, которые обычно используются для применения форматирования CSS только в Internet Explorer. Это самые распространенные хаки:
-
html > body
деталиhtml > body
-
* html
подробности* html
-
head:first-child + body
деталиhead:first-child + body
-
head + body
деталиhead + body
-
body > element
детали
Многие из причуд синтаксического анализа CSS, на которых основаны эти хаки, были исправлены в IE7, и это означает, что специфическое для IE форматирование, которое они применяют, не будет применяться в IE7.
Теперь, если причудливость рендеринга IE, которую вы разработали, была исправлена и в IE7, это просто прекрасно. Но если, если нет, то дизайн вашего сайта сломается в новом браузере.
Microsoft надеется, что разработчики вместо этого будут использовать более предсказуемую функцию условных комментариев в Internet Explorer 5 или более поздней версии, чтобы поместить CSS только для IE в отдельную таблицу стилей, которая будет использоваться только этим браузером:
<!--[if IE]><link rel="stylesheet" href="ieonly.css" type="text/css" /><![endif]-->
Но, как я уже сказал, из-за множества исправлений рендеринга, которые появятся в IE7, вам нужно, чтобы только некоторые из ваших специфичных для IE CSS применялись в IE7. Поэтому вам нужно будет еще больше разделить стили, специфичные для IE. Используя более сложные условные комментарии, вы можете создавать таблицы стилей, которые применяются к IE7 или более ранней версии, IE6 или более ранней версии, IE5.5 или более ранней версии и т. Д.
<!--[if lte IE 7]><link rel="stylesheet" href="ie7.css" type="text/css" /><![endif]--> <!--[if lte IE 6]><link rel="stylesheet" href="ie6.css" type="text/css" /><![endif]--> <!--[if lte IE 5.5]><link rel="stylesheet" href="ie55.css" type="text/css" /><![endif]-->
Конечно, до тех пор, пока Microsoft не выпустит общедоступную бета-версию Internet Explorer, мы не будем знать, какие исправления оставить (в ie7.css), а какие выпустить только для старых браузеров (в ie6.css).