Десяток решений известных и не очень багов IE6.
Это должен знать каждый верстальщик.
9 марта 2009
6 комментариев23 июля 2008
Джеми Томсон обнаружил неприятную штуку в IE7. Ещё более неприятную, чем недавнее включение «6.0» в строку user agent.
Если строка user agent длиннее 260 символов, она магическим образом превращается в «Mozilla/4.0 (compatible; MSIE 6.0)».
7 июля 2008
Заметил, что jQuery.browser.version неверно определяет версию IE. Седьмой считается шестым.
Ошибка уже в трэкере, но ещё не поправлена:
http://dev.jquery.com/ticket/1867
http://dev.jquery.com/ticket/2661
http://dev.jquery.com/ticket/2413
user-agent, отдаваемый IE7 сменился с последними обновлениями на:
Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) ; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30)
Соответственно регулярка совпала с MSIE 6.0.
Мораль: user-agent — штука ненадёжная. Лучше проверять наличие объектов, например:
//IE6 if (window.external && (typeof window.XMLHttpRequest == "undefined")) { //… }
9 июня 2008
Отличный трюк, позволяющий избежать удваивания отступа в IE6 при использовании float.
26 мая 2008
Обновление JS и CSS кода модуля Drupal 5 Thickbox до последней доступной на данный момент версии.
Исправляет баги IE6 с позиционированием бокса на длинных страницах.
Требует jQuery Update.
В основную ветку Drupal 5 включено не будет из-за требуемого jQuery Update.
17 декабря 2007
Когда первый раз увидел - был в шоке :)
Итак, если потянуть textarea на 100% (надо, чтобы у нас была ещё колонка справа, что вполне типично), то IE6 начнёт сходить с ума при вводе текста. А именно потянет нашу textarea куда-то вправо.
Фиксится это дело обрамлением textarea любым блочным элементом, например fieldset, и заданием ему width: 100%.
6 августа 2007
IE автоматически генерирует id(в DOM-дререве) для элементов, у которых определён name. При этом id становится равным этому самому name. Из-за этого может выйти нечто неприятное:
<span style="color:blue" name="label">blue</span> <span style="color:red" id="label">red</span> <script type="text/javascript"> alert(document.getElementById("label").style.color); </script>
26 июля 2007
Вот уж не думал, что найдётся ещё один :)
На этот раз при помощи использования альтенативного контрола Active-X.
Пользоваться очень просто: подклюаем скрипт и в нужном месте:
IEHTMLSelectElement.fix( document.getElementsByTagName('select') );
29 июня 2007
Как известно, select в IE6 штука глючная и на z-index не реагирует. Из-за этого часто возникают проблемы с реализацией различных меню и подсказок. Существует мнение, что решения нет, но это не так:
.ns{ border: 2px solid #f00; position: absolute; left: 50px; top: 10px; width: 150px; height: 150px; } .nsframe{ z-index: -1; position: absolute; top: 0px; left: 0px; width: 146px; height: 146px; }
<div class="ns"> <IFRAME class="nsframe" scrolling="no" frameborder="0"></IFRAME> Здесь информация Здесь информация Здесь информация Здесь информация Здесь информация Здесь информация</div> <select name="nameSelect"> <option value="1">название</option> <option value="1">название</option> <option value="1">название</option> <option value="1">название</option> <option value="1">название</option> </select>