То, что я делаю в проекте, над которым я работаю, берет пример с HTML5 Boilerplate Пола Айриша и назначает условные стили всей всей странице . Здесь он подробно останавливается на здесь , но вкратце идея состоит в том, чтобы добавить условные проверки в HTML каждой страницы вашего сайта, примененной к тегу body. Вот так:
<!--[if lt IE 7 ]> <body class="ie6 pageStyle"> <![endif]-->
<!--[if IE 7 ]> <body class="ie7 pageStyle"> <![endif]-->
<!--[if IE 8 ]> <body class="ie8 pageStyle"> <![endif]-->
<!--[if IE 9 ]> <body class="ie9 pageStyle"> <![endif]-->
<!--[if (gt IE 9)|!(IE)]><!--> <body class="pageStyle"> <!--<![endif]-->
IE браузеры будут читать эти комментарии и применять эти стили. Другие браузеры будут игнорировать это. Гениальность этого в том, что вы можете разрабатывать веб-сайты, соответствующие стандартам, использовать PNG, что угодно. А затем, в вашем CSS, добавьте дополнительные стили, помещенные ПОСЛЕ ваших стандартных стилей, чтобы дать браузерам IE то, что они хотят. Например, один стиль, над которым я работаю, использует фоновое изображение PNG. Чтобы сделать эту игру приятной в ie6, я мог бы использовать javascript / htc, чтобы заменить их, применив один из множества хаков. ИЛИ я мог бы сделать это:
.someStyle {
background: url(/images/someFile.png) no-repeat;
background-position: -0px -280px;
}
.ie6 .someStyle {
background: url(/images/someFile.gif) no-repeat;
background-position: -0px -280px;
}
Предоставляя GIF моим пользователям из ie6, нет обходных процессов, вызывающих зависание ЦП, что на самом деле является очень большой проблемой, если вы когда-либо тестировали на типе POS-машины, которая, вероятно, будет работать ie6. И я не отказался ни от какого качества для своих хороших пользователей с хорошими браузерами.
Это требует двух отдельных файлов, но я думаю, что это намного более чистая реализация, чем большинство. Кроме того, вместо отдельного файла ie6.css, используя .ie6 .whith, что держит ваши исправления прямо рядом со стилями, к которым они применяются, которые я считаю чище и проще в использовании. Это также побуждает вас думать о пользователях ie6 по ходу дела, вместо того, чтобы закончить свой дизайн, а затем оглянуться назад в ужасе