kulturbanause Blog

Responsive Design, WordPress, Konzeption, HTML, CSS, JS & UX/UI …

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.

Workshops und Seminare von kulturbanause

Visual Prototyping, Responsive Design, CSS Grid & Flexbox, WordPress, Adobe XD, HTML & CSS Grundlagen, Website-Optimierung …

Jetzt Frühbucher-Rabatte sichern!

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.

Jetzt bist du gefragt!

Hast du Anregungen, Ergänzungen, einen Fehler gefunden oder ist dieser Beitrag nicht mehr aktuell? Dann freuen wir uns auf deinen Kommentar.

Du kannst diesen Beitrag natürlich auch weiterempfehlen. Wir sind dir für jede Unterstützung dankbar!

Das könnte dich auch interessieren

7 Kommentare

  1. Florian Wenzel

    Verfasst am 25. Oktober 2011 um 11:20 Uhr.

    Danke! Du hast meinen Tag gerettet. Gestern war ich kurz davor aus dem Fenster zu springen.

    Grüße,
    Flo

  2. mützenflo

    Verfasst am 18. Januar 2012 um 12:43 Uhr.

    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 :)

  3. Nils

    Verfasst am 9. März 2012 um 19:18 Uhr.

    Super!!!!!!!!!!!!!!!!!!!!!!!!!!
    Vielen Dank.

  4. Pizo

    Verfasst am 18. April 2012 um 13:35 Uhr.

    Danke!!

  5. sji

    Verfasst am 24. September 2012 um 17:32 Uhr.

    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

  6. Michel

    Verfasst am 20. März 2013 um 14:36 Uhr.

    Danke!

  7. mrnielsen

    Verfasst am 17. April 2013 um 18:48 Uhr.

    bombe! thx! (geht natürlich auch mit ul statt div ;)

Kommentar verfassen

Dieser Blog lebt vom Feedback der Besucher! Also los, mach mit!
Bitte habe Verständnis dafür, dass Kommentare die mit dem Inhalt dieses Beitrags nichts zu tun haben, gelöscht werden.