IE 6 & amp; IE 7 Z-Index Problem
http://madisonlane.businesscatalyst.com
Ich versuche, das div#sign-post zu sitzen oberhalb der div#unten. Dies funktioniert in allen Browsern außer dem IE6 & IE7. Kann jemand sehen, was das problem hier ist?
Auch IE6 zeigt eine zusätzliche 198px an die Spitze der div#unten.
Kommentar zu dem Problem - Öffnen
Ironischerweise sind es die großen Werke in IE8
InformationsquelleAutor der Frage mattt | 2009-03-23
Du musst angemeldet sein, um einen Kommentar abzugeben.
Stimmen mit validator Kommentar - Validierung hilft in der Regel. Aber, wenn es nicht hier ein paar Hinweise für den z-index im IE:
1) Elemente, die z-index-Sie sind die Manipulation sollte auf der gleichen Ebene, dh. Sie sollten die Einstellung der z-index von #unten #Körper
wenn dies nicht möglich ist, dann
2) IE manchmal nicht anwenden der z-index richtig, es sei denn, die Elemente Organisationseinheit anwenden, um eine
position:relative
. Versuchen Sie die Anwendung, die-Eigenschaft auf #Boden #und Körper (oder #Wegweiser)lassen Sie mich wissen, wie das funktioniert
Darko
InformationsquelleAutor der Antwort Darko Z
Meisten Antworten hier sind falsch, einige Arbeit, aber nicht für den Grund, den Sie angeben. Hier einige Erklärungen.
Dies ist, wie der z-index sollte die Arbeit nach die Skillung:
z-index
Wert für jedes element, wenn Sie nicht, es wird standardmäßig aufauto
position
Attribut unterscheidet sich von der Standard -static
) mit einemz-index
anders ausauto
erstellen Sie eine neue stacking-context. Stacking-Kontexten sind die "Einheiten" von überschneidungen; eine stacking-context ist entweder komplett über die andere (das heißt, jedes element des ersten, ist über jedem element der zweiten) oder ganz unten.z-index
Wert haben, der Wert als ein stack-level, andere Elemente Erben von Ihren Eltern. Das element mit dem höheren stack-level wird angezeigt, auf der Spitze. Wenn zwei Elemente haben den gleichen stack-Ebene, in der Regel diejenige, die später in den DOM-Baum ist gemalt an der Spitze. (Komplizierter Regeln gelten, wenn Sie einen anderenposition
Attribut.)In anderen Worten, wenn zwei Elemente haben
z-index
gesetzt, um zu entscheiden, welche anzeigen auf der Oberseite, die Sie brauchen, um zu überprüfen, ob Sie irgendwelche positioniert Eltern, die haben auchz-index
gesetzt. Wenn Sie nicht, oder die Eltern sind Häufig, das man das mit dem höheren z-index gewinnt. Wenn Sie das tun, werden Sie brauchen, um zu vergleichen, der Eltern und derz-index
der Kinder ist irrelevant.Also die
z-index
entscheidet, wie das element platziert ist im Vergleich zu anderen Kindern seiner "stapeln " Eltern" (die nächsten Vorfahren mit einerz-index
- set und einposition
vonrelative
,absolute
oderfixed
), aber es spielt keine Rolle, wenn im Vergleich zu anderen Elementen; es ist das stapeln der Elternz-index
(oder möglicherweise diez-index
des stacking-Eltern-stacking Eltern, et cetera), die zählt. In einem typischen Dokument, wo Siez-index
nur auf ein paar Elemente wie dropdown-Menüs und der popups, keine von denen enthält, die andere, die stapeln Eltern aller Elemente, die einez-index
ist das gesamte Dokument, und Sie können in der Regel Weg mit dem denken derz-index
als globales Dokument-level-Bestellung.Den grundlegenden Unterschied mit IE6/7 ist, dass positionierte Elemente beginnen neue stacking-Kontexten, ob Sie
z-index
gesetzt sind oder nicht. Da die Elemente, die Sie würde instinktiv zuordnenz-index
Werte sind in der Regel absolut positioniert und haben einen relativ positionierten Eltern oder nahe Vorfahren, dies bedeutet, dass Ihrez-index
-ed-Elemente werden nicht verglichen, sondern deren positioniert Vorfahren werden - und da diese keine z-index setzen, ein Dokument, um sich durchsetzen wird.Als eine Problemumgehung, die Sie brauchen, um herauszufinden, welche Vorfahren sind eigentlich im Vergleich, und weisen die z-index, um Sie zum wiederherstellen der Reihenfolge, die Sie wollen (das wird in der Regel umgekehrter dokumentreihenfolge). Dies erfolgt in der Regel durch javascript - für ein dropdown-Menü, können Sie zu Fuß durch das Menü Container oder übergeordneten Menüpunkte, und ordnen Sie Ihnen eine
z-index
von 1000, 999, 998 und so weiter. Eine andere Methode: wenn ein popup-oder dropdown-Menü, das sichtbar wird, finden alle seine relativ positionierten Vorfahren, und geben Sie eineon-top
Klasse, die hat einen sehr hohen z-index; Wann wird es wieder unsichtbar, entfernen Sie die Klassen.InformationsquelleAutor der Antwort Tgr
Ich hatte gerade dieses problem und das Update fand ich (Dank Quirksmode) war es, den direkten parent der Knoten, der Sie versucht, einen z-index von seinen eigenen z-index, der bei weniger als der z-index der Knoten, den Sie festlegen möchten. Hier ist ein kurzes Beispiel, das sollte funktionieren im IE6
InformationsquelleAutor der Antwort Jason Sperske
Willkommen, ich habe das problem gelöst mit:
InformationsquelleAutor der Antwort remx
Sieht für mich wie Sie haben einige fehlerhaftem HTML-Code in es. Ich habe versucht, zu zählen, und vielleicht ich habe aufgehört zu zählen von öffnenden und schließenden tags, aber es sieht aus wie div#container nicht geschlossen ist. Versuchen Sie, Ihre Seite durch einen validator (z.B. W3C HTML-Validator, oder sowas) und beheben einige Fehler. Das hat mir geholfen, mit dieser Art von Problemen in der Vergangenheit. Viel Glück!
InformationsquelleAutor der Antwort Shalom Craimer
Ich habe vor kurzem hatte ein ständiges problem der Anzeige eine Schicht über der anderen. In meinem Fall war ich programmgesteuert erstellen von zwei Ebenen in Javascript, eine für diaplaying ein custom control und einer für die Erstellung von Vollbild-Schicht dahinter. FF war in Ordnung, bu IE angezeigt, der full-screen-Schicht, die immer oben auf alles andere.
Nach zahlreichen Schleppnetze über das interweb, versucht, alle Anregungen, die einzige Möglichkeit, die ich letztendlich bekommen, dass es Arbeit war das entfernen der
position:
Attribute von beiden Ebenen, und ändern Sie diemargin-top:
Attribut, bis ich ein zufriedenstellendes Ergebnis.Etwas von einem hash, aber es funktioniert und es wird gut sein, bis IE 8 sortiert alle aktuellen bugs......
InformationsquelleAutor der Antwort
die einzig zuverlässige Lösung ist, um den oberen Elementen unten in den code, und schieben Sie Sie dann über die anderen Sachen, die mit absoluter Positionierung.
z.B. WordPress:
setzen Sie die navigation im footer-Datei, aber immer noch innerhalb der Seite wrapper.
vielleicht bringen auch einige Vorteile für Suchmaschinen, denn Sie können direkt starten mit dem Inhalt, ohne kriechen durch das Menü erste...
UPDATE:
Ich muss mich korrigieren. Legen Sie das element unten und dann schieben Sie es über ist immer noch der einfachste Weg, gibt es bestimmte Fälle, wenn dies nicht möglich ist, in angemessener Zeit. Dann Sie haben, um sicherzustellen, dass jede und jeder das parent-element hat eine Art der Positionierung und in einigen sinnvoll z-index. Dann wird der z-index wieder funktionieren sollte auch im IE7.
InformationsquelleAutor der Antwort Martin Sedlmeier