Polubiłem Internet Explorer 7 od samego początku – większość błędów z którymi trzeba się użerać w IE6 jest załatana co czyni pracę kodera zdecydowanie łatwiejszą.
Pojawiło się jednak parę nowych problemów, w tym takie, które nie istniały w IE6. Dwa dni temu spotkałem się z ciekawym błędem dotyczącym nadawania z-index elementom.
W wielkim skrócie, chodzi o to, że IE7 nie potrafi zmienić raz zadeklarowanego z-index dla elementu. Nie działa nawet !important.
Na przykład, mamy dwa divy, z których jeden ma zasłaniać drugi w momencie najechania na niego kursorem myszy.
div {
...jakiś kod... ...position: itd...
z-index: 0;
}
div:hover {
z-index: 1;
}
Taki zapis zadziała w większości normalnych przeglądarek, a nawet w IE6 (z whatever:hover). W IE7 natomiast nie. Element <div> w IE7 w stanie :hover wciąż ma z-index: 0.
z-index zmienić można, za pomocą Javascript. Zadziała nawet najgłupsze onomouseover="this.style.zIndex='1';".
PS. Jak się okazało inni też wiedzą o tym błędzie.
Powiązane wpisy:

by Riddle
29 Jan 2008 at 14:10
Nie mam za bardzo jak tego teraz przetestować, więc będę się poruszał w sferze domysłu… ale o ile dobrze pamiętam podobny błąd z IE6 naprawiało się dając warstwie nadrzędnej jakikolwiek background inny od transparent. Kolor albo url(blank.gif), a na dobrą sprawę i url(biteme) też działało.
Potwierdzisz?
by nbw
29 Jan 2008 at 14:38
Tylko że na problem natknąłem się robiąc wielopoziomowe menu z overlapem więc wszystkie elementy mają ustawiony background. Natomiast pokombinuję jeszcze z tym, może jest ładniejsze rozwiązanie.
by johnny
04 Feb 2008 at 12:24
Też kiedyś miałem w IE7 problem z z-index dla hoverowanego elementu. Wyguglałem wtedy, że pomaga ustawienie direction: ltr;. Pomogło – serio.
by ble
15 Feb 2008 at 10:49
Problem polega w tym ze IE nie potrafi obsluzyc zdarzenia hover dla innych elementow niz znacznikow
by nbw
15 Feb 2008 at 11:37
ble:
IE6 – owszem, choc niezupelnie. Poszukaj w Google hacka “whatever:hover”
IE7, o ktorym mowa w tekscie, radzi sobie z :hover dla wszystkich elementow.
by Michał (Wimi)
13 Jan 2009 at 02:37
Ostatnio przy tworzeniu strony też natknąłem się na ten problem. Zamiast mieszać z z-index, można wykorzystać naturalny sposób ładowania drzewa DOM. Mając do dyspozycji CSS można przerzucać dowolne fragmenty strony gdzie się żywnie (prawie
chce. I tak np. całe nasze menu można załadować na końcu strony, przez co będzie miało najwyższe z-index. A za pomocą CSS można je umieścić na samej górze okna przeglądarki www.