IE hack - <!–[if IE]> + CSS fix
Многие веб разработчики наверное сталкивались с проблемой некорректного отображения данных в InternetExporer и пытались её решить. Я предлагаю вам 2 очень варианта решения таких проблем, которые значительно облегчат жизнь html кодеров.
IE fix или IE hack
Сам Microsoft вшил в Explorer данный хак, хотя лучше бы они новый браузер разработали :), но и на том спасибо.
Суть веб дизайн хака заключается в том, что можно без JavaScript заставить Explorer обрабатывать определенный участок кода, причем все остальные браузеры будут считать его комментарием.
Данный хак блок выглядит так
<!--[if IE]>
ВАШ КОД
<![endif]-->
Структура заголовка блока
<!--[if УСЛОВИЕ IE ВЕРСИЯ]>
УСЛОВИЕ может быть таким:
- lt - менее
- lte - менее или равно
- gt - более
- gte - более или равно
ВЕРСИЯ - версия интересующего вас браузера
Например для хака IE только версии 5.5 мы должны написать
<!--[if IE 5.5]>
Для хака всех IE меньше или равных 7
<!--[if lte IE 7]> или <!--[if lt IE 8]>
Рабочий пример:
<!--[if lt IE 8]>
<script>
alert("Ваш браузер не соответствует современным стандартам интернета")
</script>
<![endif]-->
CSS fix
Можно очень сдорово сыграть на том, что IE толком не поддерживает спецификацию CS. По крайней мере в версиях до 7 это работает точно.
А использовать мы будем такую фичу, как !mportant
Фикс выглядит очень просто
div.some-class {
width: 120px !important;
width: 119px;
}
Получается, что для всех нормальных браузеров параметр с !mportant является более важным, чем последующий, а для IE нет. Таким образом в IE ширина будет 119px, а в других браузерах 120px.




25.10.2008 в 22:21
Спасибо за интересный обзор, только вот первый вариант называется не хаком а условным комментарием.
Более подробную подборку хаков я делал недавно у себя на блоге. Мне будет интересно прочитать ваше мнение.
http://zodios.net/htmlcss/hacks.html