Szybka pomoc

Ściągawka historycznych błędów Internet Explorer (Archiwum)

Historyczny przewodnik po znanych błędach w IE8 i starszych: brakujące zdarzenia change, błędy fokusu etykiet label, hasLayout oraz dziedziczenie przezroczystości.

· Opublikowano

Przewodnik po historycznych błędach renderowania i osobliwościach JavaScript spotykanych podczas utrzymywania starszych witryn dla Internet Explorera (IE8).

Znane problemy IE8 i obejścia

1. Zdarzenia change na polach wyboru radio i checkbox

W IE8 zdarzenie change na <input type="checkbox"> oraz <input type="radio"> nie wywołuje się od razu po kliknięciu, lecz dopiero po utracie fokusu.

  • Obejście: Nasłuchuj zdarzenia click zamiast change, aby natychmiast reagować na zmianę stanu.

2. Klikalne elementy <label> otaczające pola formularzy

W IE8 kliknięcie <label> zawierającego wewnątrz pole <input> nie przełącza ani nie przenosi fokusu do kontrolki.

  • Obejście: Nadaj każdemu polu unikalne id="..." i powiąż je jawnie przez <label for="...">.

3. Dziedziczenie przezroczystości na pozycjonowanych potomkach

Ustawienie filter: alpha(opacity=50); na elemencie nadrzędnym nie przechodzi na dzieci mające position: relative lub position: absolute.

  • Obejście: Przypisz regułę filtra przezroczystości bezpośrednio do pozycjonowanych elementów podrzędnych.

4. Problemy z aktywacją hasLayout (IE6 / IE7)

Wiele błędów układu (znikająca treść, załamania modelu pudełkowego) w IE6/7 wynikało z braku wewnętrznych wymiarów układu elementu.

  • Naprawa: Wymuś hasLayout za pomocą zoom: 1; w CSS.

Źródła

Powiązane tematy