2008-09-30 6 views
5

Ich habe diese große Dateneingabe Art der Seite, eine Tabelle Art des Layouts mit divs. Jede Reihe hat Unterreihen, die geöffnet/geschlossen werden können. Das Umschalten wird mit den CSS-Sichtbarkeitseinstellungen ausgelöst. Jede "Zelle" der Tabelle hat ein kleines Bild in ihrer Ecke, Sie klicken auf das Bild, und es öffnet sich ein Popup-Fenster, in dem Sie Notizen zum Eintrag machen können.Textarea in IE7 verschwindet auf Maus über

Dieses Popup-Fenster hat einen Textbereich und eine Reihe von Kontrollkästchen, zusammen mit einer Schaltfläche (Eingabe-Typ = abschicken, denke ich). Das Popup ist ein iframe, das in einem versteckten div geschachtelt ist.

In IE7, sobald Sie aufgeklappt haben, merkt sich dieser iFrame und scrollt die Seite nach unten, Maus über das Popup-Textfeld lässt es verschwinden und zeigt den Seiteninhalt darunter. Die Kontrollkästchen zeigen auch die Seite unten an, wenn Sie mit der Maus darüber fahren.

Also, ich habe ein paar verschiedene Korrekturen ausprobiert. Z-Index war, was ich hoffte, könnte verwendet werden, um das zu beheben. kein solches Glück. Ich könnte versuchen, den Textbereich durch eine einfache Eingabe Typ = Text ersetzen, aber da die Kontrollkästchen auch diesen Fehler aufweisen, vermute ich, dass die einzeilige Texteingabe auch den Fehler verursacht.

Antwort

6

zusätzlich Elemente zu blockieren die z-index für alle Elemente, die funktioniert haben, was IE hasLayout read more

+0

danke für diesen Tipp. Dieser Link zu haslayout.net ist wirklich hilfreich. Ich konnte das immer noch nicht beheben, aber das liegt wahrscheinlich daran, dass die Seite, an der ich gerade arbeite, so komplex und mit Müll gefüllt ist. Diese Info wird viel helfen. – the0ther

2

Wenn ich mich erinnere, richtig Z-Index funktioniert nur auf Blockelemente, die absolut positioniert sind. Versuchen Sie also, die Position des Popup-Felds auf absolut festzulegen, und versuchen Sie dann den z-Index. Wenn das Popup an einer bestimmten Position sein soll, setzen Sie das Umbruchelement relativ. Ich bin auf dieses Problem schon einmal gestoßen, und ich glaube, ich habe es so gelöst, wie ich es beschrieben habe.

9
nennt

Der einfachste Weg hasLayout (in einem anderen Beitrag erwähnt) auszulösen ist zoom: 1 hinzuzufügen.

Beim Debuggen einige der dümmsten IE 6/7 Probleme bei der Anzeige werde ich manchmal Dump nur ein temporäres

* { 
    zoom: 1; 
} 

meine CSS und wenn etwas Änderungen sehen. Wenn dies der Fall ist, fange ich an, Elemente zu Elementen hinzuzufügen, beginnend mit dem Element, Eltern/Kinder usw. des Elements.

wird nur von IE unterstützt, also ist es ziemlich "sicher" in Ihrem Dokument. Es erspart Ihnen auch, irgendetwas Verrücktes wie absolut positionierende Elemente usw. zu machen.

1

Ich hatte das genaue Problem mit beiden Eingabefeldern und Textareas in IE7, aber nur wenn ich ihnen eine Breite gab.

Ich erinnere mich nicht, woher ich es habe, aber ich fand diese Lösung, es mag nicht sehr elegant sein, aber es löste das Problem. Fügen Sie einfach hinzu:

filter:alpha(opacity=100) 

zu Ihrem CSS-Stil Attribut der schwierigen Felder.