Никому не доставляет удовольствия возня с многочисленными проблемамии, возникающими на страницах только что сверстанного веб-сайта при попытках просмотреть их через посредство браузера Internet Explorer. Зачастую недоумение может вызвать то обстоятельство, что одна и та же страница отображается совершенно по-иному в разных версиях браузера. Нередко профессиональные верстальщики используют в работе уже некий состоявшийся список условий, чтобы избежать проблем с отображением страниц в IE.
Список условий для работы с IE
Данный список порой используется для решения множества проблем, возникших при работе с IE (версий 6, 7 и
. Ниже представлены части кода, необходимого для отображения страницы в различных версиях браузера IE:
- <!--[if IE 8]> = IE8
- <!--[if lt IE 8]> = IE7 или ниже
- <!--[if gte IE 8]> = выше или = IE8
Code:
<!--[if IE 8]>
<style type="text/css">
/* css for IE 8 */
</style>
<![endif]-->
<!--[if lt IE 8]>
<link href="ie7.css" rel="stylesheet" type="text/css" />
<![endif]-->
Спецификация правил CSS для работы в IE (CSS-хаки для IE)
Другой способ объявления CSS-правил подходит исключительно для IE. Например, добавьте * перед параметром CSS и, таким образом, вы сумеете указать на определение IE версии 7, а если добавите нижнее подчеркивание, то определяться будет уже 6 версия браузера. Тем не менее, данный метод не рекомендуется к использованию, так как делает ваш CSS-код невалидным.
- IE8 или ниже: для написание правила CSS конкретно для 8 версии браузера или ниже, добавляйте обратный слэш и 9 (т.е. \9) в самом конце перед точкой с запятой.
- IE7 или ниже: добавляйте * перед параметром CSS.
- IE6: добавляйте нижнее подчеркивание (_) перед параметром.
Code:
.box {
background: gray; /* standard */
background: pink\9; /* IE 8 and below */
*background: green; /* IE 7 and below */
_background: blue; /* IE 6 */
}
Условные классы HTML
Третий вариант объявления был обнаружен Полом Айришом (Paul Irish), и он заключается в том, чтобы добавлять CSS-класс вместе с версией IE в HTML-тэг посредством условного списка для IE. Т.е., посредством кода будет определен браузер и его версия, далее будет добавлен класс к тэгу html. Для определения конкретной версии IE, просто воспользуйтесь классом IE в качестве родительского селектора (например, .ie6 .box). Это очень неплохой способ, и здесь у вас не возникнет проблем касательно валидности.
Code:
<!--[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]-->
Прочесть оригинал статьи