Краткий справочник

Шпаргалка по устаревшим багам Internet Explorer (Архив)

Исторический справочник по известным ошибкам IE8 и более ранних версий: события change, фокус на label, особенности hasLayout и наследование прозрачности.

· Опубликовано

Справочник по исторически известным ошибкам отрисовки и особенностям JavaScript, возникающим при поддержке устаревших сайтов под Internet Explorer (IE8).

Известные особенности IE8 и способы обхода

1. События change на радиокнопках и чекбоксах

В IE8 событие change на <input type="checkbox"> и <input type="radio"> не срабатывает сразу при клике, а вызывается только после потери фокуса.

  • Обходное решение: Отслеживайте событие click вместо change для мгновенного обновления состояния.

2. Кликабельные элементы <label>, оборачивающие поля ввода

В IE8 клик по <label>, содержащему внутри <input>, не переключает состояние и не переводит фокус на внутренний элемент.

  • Обходное решение: Задайте каждому полю уникальный id="..." и явно свяжите его через <label for="...">.

3. Наследование прозрачности позиционированными потомками

Правило filter: alpha(opacity=50); на родителе не наследуется дочерними элементами с position: relative или position: absolute.

  • Обходное решение: Задавайте фильтр прозрачности напрямую позиционированным дочерним элементам.

4. Особенности активации hasLayout (IE6 / IE7)

Многие ошибки вёрстки (исчезающий текст, поломка блочной модели) в IE6/7 происходили из-за отсутствия внутренних размеров макета у элемента.

  • Исправление: Активируйте hasLayout с помощью zoom: 1; в CSS.

Ссылки

Связанные темы