10 фиксов, решающих проблемы Internet Explorer 6
Десяток решений известных и не очень багов IE6.
Это должен знать каждый верстальщик.
Читаем
Десяток решений известных и не очень багов IE6.
Это должен знать каждый верстальщик.
Читаем
Джеми Томсон обнаружил неприятную штуку в IE7. Ещё более неприятную, чем недавнее включение «6.0» в строку user agent.
Если строка user agent длиннее 260 символов, она магическим образом превращается в «Mozilla/4.0 (compatible; MSIE 6.0)».
Читаем
Заметил, что 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")) {
//…
}
Отличная подборка решений распространённых проблем при вёрстке сайта.
Читаем
Отличный трюк, позволяющий избежать удваивания отступа в IE6 при использовании float.
Пробуем
Обновление JS и CSS кода модуля Drupal 5 Thickbox до последней доступной на данный момент версии.
Исправляет баги IE6 с позиционированием бокса на длинных страницах.
Требует jQuery Update.
В основную ветку Drupal 5 включено не будет из-за требуемого jQuery Update.
Обновляемся.
Когда первый раз увидел - был в шоке :)
Итак, если потянуть textarea на 100% (надо, чтобы у нас была ещё колонка справа, что вполне типично), то IE6 начнёт сходить с ума при вводе текста. А именно потянет нашу textarea куда-то вправо.
Фиксится это дело обрамлением textarea любым блочным элементом, например fieldset, и заданием ему width: 100%.
Сегодня был обнаружен занятный баг в рендеринге mozilla.
Решается неиспользованием border-collapse: collapse;. Вместо него вполне можно обойтись в этом случае border-spacing: 0;
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>
Вот уж не думал, что найдётся ещё один :)
На этот раз при помощи использования альтенативного контрола Active-X.
Пользоваться очень просто: подклюаем скрипт и в нужном месте:
IEHTMLSelectElement.fix( document.getElementsByTagName('select') );