Воюем с MSIE 6. Условные комментарии.



Иногда кажется что MSIE версии 6 и ранее писали инопланетяне – настолько по-другому эти браузеры отображают страницы. И порой так хочется махнуть рукой на этот медленно, но верно устаревающий браузер, настолько надоедают несоответствия отображения.

Однако 15-20% аудитории интернета всё ещё пользующиеся этим браузером наверняка могут думать иначе, и они скорее всего будут не довольны, если на них будут махать рукой :)

Итак я засел вычищать глюки этого блога, специфичные именно для MSIE 6 и ранее. Как я ни старался писать код одинаково интерпретируемый в обоих браузерах -увы мне это не удалось.

В этой ситуации остался один только выход, использовать условные комментарии. Для тех кто свободно владеет английским подробно расписано здесь. Для тех кто предпочитает читать по-русски и прямо здесь, читаем дальше.

Например, нам нужно какой-то HTML-код исполнить только в IE. Пожалуйста:

<!--[if IE]>
//   Этот код для IE 
<![endif]-->

А вот пример кода не для IE:

<![if !IE]>
 //Этот код не для IE

Я, например, это использовал следующим образом. Создал два файла стилей, один из которых затачиваю на IE. А далее просто подключаю нужный стиль в зависимости от браузера:

<!--[if IE]> 
<link rel="stylesheet" href="<?php bloginfo('stylesheet_directory'); ?>/style_ie.css" type="text/css" media="screen" />
<![endif]-->
 
<![if !IE]>
<link rel="stylesheet" href="<?php bloginfo('stylesheet_directory'); ?>/style.css" type="text/css" media="screen" />
<![endif]>

Таким же образом можно обходить проблемы в любом месте вашей HTML-страницы,не толко в стилях.

Можно настроить условия для конкретной версии IE:

<!--[if gt IE 6]> -->
   // Код для IE старше 6 версии
<!-- <[endif]-->
<!--[if !gt IE 6]> -->
   // Код для IE НЕ старше 6 версии
<!-- <[endif]-->
<!--[if lt IE 6]> -->
   // Код для IE младше 6 версии
<!-- <[endif]-->
<!--[if !lt IE 6]> -->
   // Код для IE не младше 6 версии
<!-- <[endif]-->

Вот пожалуй и всё =)

Нет постов по теме.

Категории Веб-программирование |
автор: altesack / Суббота, Март 07, 2009 / 21 комментов »

21 комментов

    Тестирую OpenId

    Дубль второй:
    Таки оригинальный ход конём. :)

    Видимо, трабл на стороне яндекса…

    Слушай, попробуй отключить эту фичу для IE6. Смотрю, на других сайтах у меня таких проблем нет…

    Ты про какие проблемы?
    Я сделал отдельный стиль чтобы решить проблему с фоном для DIV а также для более тонкой настройки MARGIN, для IE нужно задавать другие значения

    Если заполняю поле “сайт”, то после проверки OpenID вылезает ошибка кодировки и мой камент появляется в кракозяблистой кодировке. Но не отправляется.
    На других сайтах такой проблемы нет.

    Дубль очередной.

    Почему-то каменты упорно пытаются отправиться в 1251

    Проверка OpenId

    Проверка OpenId #2

    Проверка OpenId #3

    Проверка OpenId #3.5

    Проверка OpenId #4

    Спамер, блин)))

    Проверка OpenId #4.11

    Вот вы говорите “Спам,Спам”..
    Вы думаете нам спамерам легко ? Да ничего подобного! Обывательские разговорчики. У всех трудящихся два выходных дня в неделю. Мы спамеры работаем без выходных. Рабочий день у нас ненормированный.

    Очередная проверка

    А в чем собсно проблема то? ;)

    Ну, и ишшо раз…

    Хм… А хде ОпенИД? :)

    2Накукрыскин : Мой OpenID отказывается нормально авторизовать OpenId людей, которые используют Яндекс в качестве OpenId сервера. Причём это происходит через раз. Почему это происходит – не знаю.

    Я пока отключил у себя OpenId собственно.