Возможно, вы захотите заглянуть в эту статью , в которой объясняется, как использовать условные комментарии для установки классов в элементе html. Затем вы можете использовать этот класс для нацеливания на конкретные браузеры в вашей таблице стилей, чистым способом.
Ваш HTML-тег будет выглядеть примерно так:
<!--[if lt IE 7]> <html class="ie6"> <![endif]-->
<!--[if IE 7]> <html class="ie7"> <![endif]-->
<!--[if IE 8]> <html class="ie8"> <![endif]-->
<!--[if IE 9]> <html class="ie9"> <![endif]-->
<!--[if (gt IE 9)|!(IE)]><!--> <html> <!--<![endif]-->
Редактировать 2
После объявления о том, что IE10 не будет поддерживать условные комментарии, было бы неплохо обновить этот ответ. Я протестировал тип комментариев, которые он будет поддерживать, и кажется, что вышеприведенное все еще будет работать, но , если вы хотите настроить таргетинг выше 10 или только на 10, вам не повезет . Как предложили сами Microsoft в своем блоге (ссылка в комментариях @MarcoDemaio), вы должны использовать функцию обнаружения.
Тогда вы можете сделать что-то вроде этого в вашем CSS:
.somestyle {
background: transparent url('derp.jpg') no-repeat;
}
/* ie6 fallsback class */
.ie6 .somestyle {
background: #eee;
}
Прочитайте статью, и удачи;)
Редактировать 2:
Поскольку IE7 больше не является моей главной заботой, а IE9 довольно последовательный в своем поведении, я могу обойтись без следующего кода (который добавит класс только для версий IE меньше, чем IE9):
<!--[if lt IE 9]><html class="lte9"><![endif]-->
<!--[if gt IE 8|!IE]><!--><html><!--<![endif]-->
Редактировать 1:
Хорошо, мне удалось пропустить ваш комментарий "не удается редактировать html".
В этом случае вы можете использовать только специальные взломы браузера, я думаю, что они чертовски грязны, но эй, если у вас нет другого выбора ......
Что-то вроде этого:
.someclass {
*color: blue; /* IE 7 and below */
_color: blue; /* IE 6 */
}
/* IE6, IE7 - asterisk hack */
.someclass { *color: blue; }
/* IE8 - winning hack */
.someclass { color: blue\0/; } /* must be last declaration in the selector's ruleset */