Z-index: Wie man verschachtelte Elemente erscheinen unterhalb der übergeordneten element
Diese Geige soll das Problem veranschaulichen:
Möchte ich das sub-Menü erscheinen unterhalb der übergeordneten Menü. Dann war ich war auf der Suche zu erweitern, dies mit JavaScript zu schieben, das Menü von unten auf hover, der das übergeordnete li-element.
Nicht viel Aufhebens über das JavaScript kann aber nicht herausfinden, wie man style-Elemente, um die gewünschte Schichtung.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nicht.
Stattdessen machen die
a
werden die "Sign In" - button".Etwas wie dieses: http://jsfiddle.net/5sqxQ/15/
Es funktioniert nicht, weil Sie die Anwendung einer z-index, um das übergeordnete element, das macht das untergeordnete element, stack-relativ zu den anderen Elementen innerhalb der übergeordneten.
So, wenn die Eltern
z-index: 9
und das Kind istz-index: 8
, es ist eine Art, wie die Zuordnung einer z-index von9, 8
Sehen der Artikel hier für eine bessere Erklärung.
Wenn Sie entfernen Sie den z-index für die Eltern und setzen die Geschwister-element
z-index: -1
, das sollte funktionieren. Ich bin mir nicht sicher über alle Browser, aber es funktioniert in Chrome sowieso.Hier ist die aktualisiert fiddle
Hoffe, das hilft.
z-index: -1
ist verführerisch, aber unangenehm. Siehe: jsfiddle.net/5sqxQ/17 - alles, was ich getan habe ist, fügen Sie den wrapperdiv
mit einem hintergrund.z-index: -1
ist unangenehme.z-index: -1
ist verführerisch, aber [es ist eine] unangenehm [Nebenwirkung]". Das ist es, was ich meinte, sowieso. Sorry für die Verwirrung.Versuchen Sie, die Eltern und Geschwister Container position relative.
Seine arbeitete für mich vor.
Blick auf die folgenden Regeln, wie Elemente gestapelt werden, und Sie können leicht kommen mit Ihrer eigenen Lösung.
ex. Wie thirtydot sagte, geben Sie "Sign In"
.users > li > a
eine position, dierelative
oderabsolute
, undz-index: 1
Die Stapelreihenfolge und stacking-context-Regeln unten sind von diesem link
Anordnung innerhalb eines Stacking-Context
Reihenfolge der Elemente:
<html>
element ist das einzige, stacking-Rahmen standardmäßig, aber kann jedes element einem root-element für einen stacking-context, siehe Regeln unten), Wenn eine Stacking-Context bildet
<html>
element)