z-index-Bug im Internet Explorer 7 (IE7) mit jQuery lösen
Der Internet Explorer 7 ist mittlerweile ja schon etwas angestaubt. Nichts desto trotz wird er in den meisten Web-Projekten noch berücksichtigt, was angesichts der Verbreitung des Browsers auch nach wie vor sinnvoll ist. Der Internet Explorer 7 ist allerdings für einige sehr ärgerliche Bugs bekannt, zu denen unter anderem auch der z-index
-Bug gehört. Hierbei ordnet der IE7 trotz korrekt vergebenem z-index
Layout-Elemente falsch an. Bei Drop-Down-Navigationen oder ähnlichen überlappenden Bereichen kann dieser Fehler daher zu etlichen grauen Haaren führen. Ein Live-Beispiel des Bugs findet ihr hier. Der z-index
-Bug lässt sich auf verschiedene Arten lösen. Eine sehr schnelle und komfortable Variante bietet jQuery. Mit wenigen Zeilen Code kann die fehlerhafte Funktionalität im IE7 nachgerüstet werden.
Da ich genau dieses Problem vor wenigen Tagen lösen musste, möchte ich euch hier einen möglichen Lösungsweg zeigen.
Folgender JavaScript-Code reicht aus um den Fehler zu beheben. jQuery muss natürlich bereits im Dokument eingebettet sein.
Da der Bug nicht in allen Browsern auftritt, sollte der Code über einen Conditional Comment nur für die entsprechende Internet Explorer Version geladen werden. Das folgende Beispiel zeigt die Integration inkl. dem Conditional Comment für den IE7.
<!--[if IE 7 ]>
<script>
$(function() {
var zIndexFix = 1000;
$('div').each(function() {
$(this).css('zIndex', zIndexFix);
zIndexFix -= 10;
});
});
</script>
<![endif]-->
Ob es sinnvoll ist einen solchen Bug mit JavaScript zu lösen muss je nach Projekt individuell bewertet werden. Sofern der Seitenbesucher JavaScript deaktiviert hat besteht der Fehler nämlich nach wie vor. Das hier gezeigte Beispiel ist nur eine Lösung von vielen.
bombe! thx! (geht natürlich auch mit ul statt div ;)
Danke!
falls für wenn interessant: der jquery-fix hat bei mir nicht geholfen, dafür aber der tip hier:
„Make sure the parent of your absolutely positioned element has a higher z-index!“
http://web.enavu.com/snippets/fixing-the-ie7-z-index-issue-internet-explorer-7-z-index/
*cheers
Danke!!
Super!!!!!!!!!!!!!!!!!!!!!!!!!!
Vielen Dank.
Hi! von mir auch ein Danke! Ich kannte den Bug schon länger und hab ihn bisher immer mit händischen z-Index-Korrekturen gefixt. So ist es viel einfacher :)
Danke! Du hast meinen Tag gerettet. Gestern war ich kurz davor aus dem Fenster zu springen.
Grüße,
Flo