Fehler mit z-index bei Internetexplorer
heinerle
- css
Ich habe ein Problem mit einem Layer, der "onclick" zwischen sichtbarkeit und unsichtbar wechseln soll.
der <div> sieht folgendermaßen aus:
<div id="colorLayer" style="border: 3px solid black; background-color: silver; position:absolute; top:0px; left: 0px; visibility: hidden; z-index: 1; width: 300px; height: 300px;">
der Layer soll bei Sichtbarkeit das dahinterliegende Formular teilweise überdecken. Das Formular soll also nicht unsichtbar werden. Deshalb habe ich einen z-index für den Layer vergeben.
Im Firefox und anderen Browsern funktioniert das ganze einwandfrei. Der Layer geht auf und dessen Inhalt ist nutzbar, während gleichzeitig (logischerweise) die hinter dem Layer befindlichen Formularelemente nicht nutzbar sind.
Anders beim InternetExplorer:
dieser ist der Meinung, dass trotz in den Vordergrund geschobenen Layer die dahinterliegenden Formularelemente weiter zu erreichen sein müssen :-(
Es geht also der Layer mit all seiner Funktionalität auf und gleichzeitig überdecken die dahinterliegenden Elemente den Layer. Es ist einfach so, als würde der IE jegliche Sichtbarkeitsreihenfolge ignorieren.
Gibt es dafür eine Lösung oder einen Hack? Wie kann ich verhindern, dass die hintenliegenden Formularelemente im Layer sichtbar und nutzbar sind?
vielen Dank im vorraus für eure Hilfe
heinerle
hi,
Anders beim InternetExplorer:
dieser ist der Meinung, dass trotz in den Vordergrund geschobenen Layer die dahinterliegenden Formularelemente weiter zu erreichen sein müssen :-(
Wow, ein uraltes Problem hast also auch du jetzt entdeckt ...
Gibt es dafür eine Lösung oder einen Hack?
Entweder die betreffenden Formularelemente in dem Zeitraum, in dem der "Layer" sichtbar gemacht ist, ihrerseits unsichtbar machen; Oder mit einem Iframe zu basteln anfangen - How to cover an IE windowed control (Select Box, ActiveX Object, etc.) with a DHTML layer.
gruß,
wahsaga
naja,iframe fällt in diesem fall aus (würde den rest des layouts zu sehr beeinflussen) und das formular dahinter unsichtbar machen geht auch nicht. Das Formular stellt ein Setup dar und das sollte schon weiterhin sichtbar sein während der User in dem Layer bestimmte Einstellungen macht.
gibt es vielleicht eine Möglichkeit, den Layer dynamisch per onclick an einer bestimmten stelle im dokument zu öffnen?
derzeit lasse ich den Layer so sichtbar werden:
onclick="showLayer('bg_footer', ''.$table_background.'', 'table_fuss', 'background')"
wenn ich dieser Funktion noch paar mehr parameter übergebe, könnte ich den layer dann an einer "formularlosen" stelle aufpoppen lassen, oder muss die positionierung beim laden des Dokuments bereits feststehen?