Ist der z-index der einzige Weg zu zwingen, ein element positioniert werden, die über die Oberseite des anderen, wenn nicht, welche anderen Methoden gibt es?
Arbeite ich an einer Anwendung, mit einer Karte und es ist ein div in der Ecke mit ein paar Sachen in es. Sie können klicken Sie auf diese Karte zu bringen, einige Informationen in einem kleinen Fenster. Das Fenster ist in einigen Fällen abgedeckt wird, durch das div in der Ecke.
Möchte ich den gegenteiligen Effekt (Fenster-Abdeckungen div). Ich dachte, dies wäre einfach eine z-index-Problem, aber ich bin nicht in der Lage, um es an die Arbeit. Dies ist mit IE7 und aus der Lektüre ein wenig scheint es, wie der z-index funktioniert nicht, es sei denn, es ist im inneren eines Elements, das positioniert ist.
Elemente scheinen richtig positioniert werden, um die z-index, Recht auf Arbeit, aber ich habe wenig Glück. Ich habe gespielt, um mit dem hinzufügen von styling über Firebug aber habe nicht hatte kein Glück in immer irgendetwas zu ändern. Das Fenster ist wirklich einfach zwei divs ein absolut positioniert, und eine relativ nach innen von ihm.
Ist der z-index, das einzige, was das problem sein könnte hier oder ist es etwas anderes, ich weiß nicht?
Gibt es andere Methoden um den Effekt zu erzielen, die ich will? Ich kann einfach nicht verbergen das div via jquery oder so etwas, weil ein Teil davon sollte sichtbar sein, hinter dem sich öffnenden Fenster auf der Karte.
InformationsquelleAutor Carter | 2009-03-26
Du musst angemeldet sein, um einen Kommentar abzugeben.
Treffen der stacking-context bug
http://therealcrisp.xs4all.nl/meuk/IE-zindexbug.html
Jeden positionierten div im IE erstellen einen neuen stacking-context und verhindern, dass der z-index von verschiedenen stapeln Kontexte kommen auf der Oberseite des anderen.
Die Lösung ist das Fenster, das Sie oben in den Baum (in den Körper, zum Beispiel) und z-index-Wert reibe als z-index aller Eltern der anderen div-Element für Ihr Fenster.
Umfangreiche Informationen zu verstehen, hier das problem:
http://richa.avasthi.name/blogs/tepumpkin/2008/01/11/ie7-lessons-learned/
InformationsquelleAutor Miquel
Positionierung und negativen margins ist der einzige Weg, um Elemente zu überlappen, die ich kenne. z-index wird nur verwendet, um explizit mitzuteilen, wie der browser layer der Elemente.
so, zu deinem problem, DH erfordert die container-Elemente und/oder Elemente, die Sie überlappen zu haben
position:relative;
oderposition:absolute;
für z-index, um richtig zu arbeiten. Wenn jemand sagt, dass die Positionierung sind Sie in der Regel implizieren, dass dieposition
Eigenschaft in CSS. Auch beim arbeiten mit z-index-stellen Sie sicher, dass die überlappenden elementa sind auf der gleichen Ebene mit einander.Hoffe, das hilft
InformationsquelleAutor Darko Z
Ganz einfach, die Reihenfolge der Elemente in der HTML-Datei bestimmen, die Stapelreihenfolge. Wenn Sie möchten, dass ein element über einem anderen, dann stellen Sie sicher, es kommt später in den HTML-Code.
Kann man nur tauschen Sie die Stapelreihenfolge auf Elemente, die alle im selben element enthalten. Wenn Sie zum Beispiel zwei divs und beide enthalten 3 Bildern Sie können Bilder aus dem zweiten div wieder unter den Bilder von der ersten div.
Müssen Sie planen Sie Ihre HTML Voraus, wenn Sie es brauchen komplexe stapeln von Bestellungen.
InformationsquelleAutor Matthew James Taylor
Als angedeutet durch die anderen Antworten,
position:relative
undposition:absolute
zurücksetzen des "stacking-context" im IE.InformationsquelleAutor Eric Wendelin
Wenn Sie möchten, dass ein fauler Antwort, die Sie verwenden könnten, javascript und ausblenden des div, wenn Sie klicken Sie auf die Karte, und zeigen Sie es, wenn Sie die Karte schließen.
Werden Sie haben, dies zu tun mit jeder wählt auf der Seite irgendwie nicht, weil im ie funktionieren Sie leider nicht mit z-index.
InformationsquelleAutor thirsty93
Ich lief in das gleiche Problem vor ein paar Tagen und fand die negative Marge wie vorgeschlagen von Darko Z Super geklappt. (Meine rep ist nicht gut genug, um Stimmen für Darko)
Ich schrieb eine kurze Nachricht darauf.
http://www.swards.net/2009/03/layering-html-elements-without-using.html
InformationsquelleAutor