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.
Nazywam się Tomasz Staniak, zajmuję się prowadzeniem/tworzeniem projektów internetowych. Na blogu przeczytasz o tym, co mnie interesuje a także z czym jestem związany zawodowo.
5 Responses for "Błędne z-index w Internet Explorer 7"
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?
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.
Też kiedyś miałem w IE7 problem z z-index dla hoverowanego elementu. Wyguglałem wtedy, że pomaga ustawienie direction: ltr;. Pomogło - serio.
Problem polega w tym ze IE nie potrafi obsluzyc zdarzenia hover dla innych elementow niz znacznikow
ble:
IE6 - owszem, choc niezupelnie. Poszukaj w Google hacka “whatever:hover”
IE7, o ktorym mowa w tekscie, radzi sobie z :hover dla wszystkich elementow.
Leave a reply