Zurück zur Homepage

KS Webdesign - Der Blog

Hinweise zu den Tutorials:
Bitte aus dem kopierten Quelltext: <p class="bitte_loeschen">.....</p> und die Gestaltungsanweisungen dazu entfernen.

Stapelung 1 – Mit und ohne z-index

10. August 2009 von Klaus

Ich weiss nicht ob es euch schon mal so gegangen ist:

Eine schönes Design mit Dropdown-Navi und sich überlagernden Elementen hurtig entworfen. Frisch gecodet, im Browser angeschaut und festgestellt, das die Dropdown-Navi hinter dem nachfolgenden Element aufklappt und somit unbenutzbar ist. Außerdem überlagern sich andere Elemente nicht so, wie du es dir gedacht hast.

Was tun??

Na klar, position:absolute; und /oder position:relative; hier und dort eingesetzt.

Noch immer nicht??

Okay, also wird massiver positioniert. Die ersten z-index tauchen auf. Bei Elementen die auf jeden Fall vorne sein müssen gleich zur Sicherheit mal z-index:5000; vergeben, damit das auch sicher klappt.

Es geht trotzdem nicht??

Nun wird nach der Trial und Error-Methode wild herumpositioniert und mit z-index nur so um sich geworfen. Ein Hauch von Verzweiflung liegt in der Luft.

Was kann ich bloß tun, damit Wunsch und Ergebnis eins werden?

Stapelung ist kein leichtes Thema, schon gar nicht wenn man alle Aspekte inklusive der üblichen Extrawürste für den Internet Explorer verstehen will.

Für den Anfang reicht es die Grundlagen zu verstehen und dabei soll dir dieses kleine Tutorial helfen.

Hier findest du die stapelung 1_anfang.htm, die den Anfang des Tutorials darstellt.

Im Browser schaut es so aus:

Textfluss normal

Im normalen Textfluss ordnen sich die Elemente untereinander an. In der natürlichen Stapelreihenfolge befindet sich das zuletzt notierte Element im Quelltext am nächsten zum Betrachter (Z-Achse). Durch negative margin-Werte können optisch ursprünglich untereinander platzierte Elemente übereinander geschichtet werden.

CSS-Ergänzung:

p { margin-top:-35px; }

Das Ergebnis:

Text mit negativen margin-top

Die Stapelungsreihenfolge auf der z-Achse (zum Betrachter hin) ist hierbei nun:
-background h1
-background p
-Text h1
-Text p

Text und Hintergrund werden also getrennt geschichtet.

CSS-Ergänzung:

h1 { position:relative; }

Das Ergebnis:

H1 mit position:relative;

Wird h1 relativ positioniert überlappt es das nach oben gezogene p , weil es durch die Positionierung ungleich position:static; aus dem Textfluss raus ist.

CSS-Ergänzung:

p { position:relative; }

Das Ergebnis:

H1 mit position:relative;

Wird p durch position:relative; auch aus dem Textfluss genommen, überlappt es wieder die Überschrift. Beide sind zwar ungleich position:static;, das p kommt im Quelltext aber erst nach der Überschrift, ist also nun wieder vorne.

Die Stapelungsreihenfolge auf der z-Achse ist nun folgende folgende:
-background h1
-Text h1
-background p
-Text p

CSS-Ergänzung:

h1 { z-index:5; }

Das Ergebnis:

H1 mit position:relative;

Jetzt ist h1 wieder vorne.

Mit z-index kann die Reihenfolge von überlappenden Elementen auf der z-Achse bestimmt werden. z-index wirkt nur auf Elemente die ungleich position:static sind.

CSS-Ergänzung:

p { z-index:2; }

Das Ergebnis:

H1 mit position:relative;

h1 ist noch immer vorne.

CSS-Ergänzung:

p { z-index:10; }

Das Ergebnis:

H1 mit position:relative;

Jetzt ist p wieder vorne, weil es einen höheren Z-Index-Wert als
h1 hat.

Daraus kann man ableiten, das je höher der Z-index-Wert, desto näher wird das Element zum Betrachter hin angeordnet.

Wir wir aber gesehen haben ist die Definition von z-index oft nicht nötig, da durch einfache Positionierung ungleich position:static; die Stapelreihenfolge auf der z-Achse schon ausreichend geändert wird.

Das wars erstmal. Vieles habe ich der Einfachheit halber weggelassen. Wenn ihr euch ausgiebig dazu informieren wollt, kann ich euch nur das Buch Fortgeschrittene CSS-Techniken von Corina Rudel und Ingo Chao ans Herz legen.

2 Kommentare und 5 Trackbacks/Pingbacks

  1. von AG – Freitag, 25. Juni 2010 um 08:09

    Ja, genial erklärt! Ich geh jetzt mal und reduzier den Code wieder ;o)

    Vielen, vielen Dank (die Seite wird natürlich auch festgetackert und immer wieder gelesen werden!)!

  2. von Klaus – Freitag, 25. Juni 2010 um 11:12

    Hi Ania,

    schön wenn der Artikel dir geholfen hat. :)

  3. Pingback Verlauf an rechten Kasten entlang ... - XHTMLforum – Sonntag, 30. August 2009 um 19:20

    [...] [...]

  4. Pingback Runde Ecken 2 – Donnerstag, 15. Oktober 2009 um 10:53

    [...] euch nicht so klar ist warum das so schaut euch mal diesen Artikel [...]

  5. Pingback Drop-Down-Men – Donnerstag, 29. Oktober 2009 um 13:44

    [...] [...]

  6. Pingback Absolute Positionierung – Mittwoch, 02. Dezember 2009 um 11:52

    [...] ihr an weiteren Infos über Stapelung interessiert seid könnte dieser Artikel von mir noch in Frage [...]

  7. Pingback Relative Positionierung – Donnerstag, 10. Dezember 2009 um 14:40

    [...] Mit position:relative; könnt ihr die Reihenfolge auf der z-Achse verändern. Infos dazu bietet dieser Artikel. [...]

Sprich und fürchte dich nicht:

Die Angaben des Namens und der E-Mail sind leider notwendig, das Feld für die Website optional.

Bitte maskiert < mit &lt; und > mit &gt; sonst verschwinden sie im Nirgendwo!

« »