IE 6 Steuerelemente (Combo Box) über das Menü auswählen

7

In IE 6 wird das Steuerelement (Kombinationsfeld) über den Menüs angezeigt. Ich habe einige Javascript-Menüs, mmmenu überprüft, aber alle werden unter Kontrolle gebracht. Es ist nicht reparierbar, indem man Z-Index zuweist. Gibt es eine andere Lösung?

    
Priyan R 16.02.2009, 05:24
quelle

4 Antworten

7

Dies ist ein bekannter Fehler bei IE6, bei dem versucht wird, Divs absolut über ausgewählte Steuerelemente zu positionieren.

Es gibt Problemumgehungen mit iframe-Shims, aber es gibt keine gute Antwort. Die Iframe-Shim-Antwort besteht darin, einen Iframe unter das Div-Element zu setzen, das Sie über einem Select platzieren möchten, wobei der Iframe die gleiche Größe hat. Leider ist das eine riesige Nervensäge.

Ich schlage vor, ein Javascript-Menüsystem zu verwenden, das bereits iframe-Shims verwendet, wie YUI-Menüs (und ich nehme an, jQuery).

    
Daniel Lew 16.02.2009, 05:38
quelle
7

Die meisten der wichtigsten JavaScript-Bibliotheken haben einfach zu implementierende Lösungen für dieses Problem. Wir verwenden jQuery, und das bgiframe-Plugin ist sehr einfach zu benutzen und löst das Problem.

    
jonstjohn 16.02.2009 15:54
quelle
3

Daniel hat definitiv recht. Das ist ein hässliches Problem.

Allerdings könnte es eine andere Lösung geben. Wenn Sie mehrstufige Menüs verwenden, die geöffnet und geschlossen werden, ist es möglich, JavaScript-Code zu schreiben, der die problematischen SELECT-Elemente beim Öffnen des Popups buchstäblich verbirgt (style das Element so, dass die Sichtbarkeit ausgeblendet wird). Wenn das Menü geschlossen wird, können Sie das gleiche SELECT-Steuerelement einblenden.

Dann müssen Sie nur Code schreiben, der erkennt, welche SELECT-Objekte einem bestimmten Menü in die Quere kommen, bevor es geöffnet wird. Es ist kein trivialer Code, aber es ist definitiv möglich zu schreiben. Dann würde ich den gesamten Code in eine Bedingung schreiben, die überprüft, ob der Benutzer im IE ist, da es nicht nötig ist, dies in Firefox oder Safari auszuführen.

    
Sebastian Celis 16.02.2009 15:54
quelle
2

Das Problem besteht darin, dass SELECT in IE6 "Fenster" -Elemente sind und ihr Z-Index vor allen anderen nicht "gefensterten" Komponenten steht. Wenn Sie unbedingt etwas über einem combox haben müssen, sollten Sie es in einem anderen Fenster compnent setzen, wie ein IFRAME, und legen Sie die Z-Index der Komponente höher zu sein als die des combobox.

Ich muss zugeben, das ist keine schöne Lösung.

    
scraimer 16.02.2009 05:36
quelle