Karte: CSS-Positionierung

Positionieren mit Stil

Der große Tanz der Elemente

Willkommen in der geheimnisvollen Kunst der CSS-Positionierung, wo du wie ein Meisterzauberer deine Elemente genau da platzierst, wo du sie haben möchtest. Während einige Elemente brav auf ihrem Platz verharren, gibt es andere, die du mit einem Fingerzeig verschieben, festnageln oder über den Rest der Webseite schweben lassen kannst. Es ist ein bisschen wie ein Ballsaal: Manche tanzen elegant in der Reihe, andere tanzen aus der Reihe, und einige scheinen in der Luft zu schweben, ohne Rücksicht auf ihre Kollegen.

In den kommenden Lektionen wirst du lernen, deine Elemente wie ein Meister zu dirigieren. Sie werden springen, kleben, gleiten oder einfach nur stur an ihrem Platz stehen. Die Positionierungsmagie gibt dir die Kontrolle über alles, was auf deiner Webseite herumhüpft.

Wer steht wo?

Ob fest, klebrig oder absolut abgehoben – hier entscheidet sich, wer wo steht.

Token: position static

Static

Der langweilige Standard

Wenn Elemente nicht wissen, dass sie tanzen dürfen, bleiben sie brav auf ihrem Platz. static ist die Grundposition, mit der alle Elemente starten – bewegungslos und ordentlich. Sie bleiben, wo sie im HTML-Code stehen, ohne zu murren. Langweilig, oder? Aber keine Sorge, du wirst bald lernen, wie du sie auf die Tanzfläche lockst!

.element {
    position: static;
}

position: static legt fest, dass ein Element im normalen Dokumentenfluss bleibt und keine spezielle Positionierung erhält.

Token: position relative

Relative

Platzierung in kleinen Schritten

Mit relative sagst du einem Element: „Du bleibst zwar auf deinem Platz, aber du darfst ein bisschen herumzappeln.“ Es wird relativ zu seiner normalen Position bewegt, ohne den Rest der Seite zu stören. So kannst du ein Element leicht nach oben, unten, links oder rechts schieben, als ob es ein bisschen zu viel Energie hätte.

.element {
    position: relative;
    top: 10px;
    left: 20px;
}

Hier wird das Element relativ zu seiner normalen Position verschoben: 10px nach unten und 20px nach rechts.

Token: position absolute

Absolute

Der Freigeist

absolute ist für all jene Elemente, die sich nicht um den Rest der Seite kümmern wollen. Sie verlassen den normalen Dokumentenfluss und positionieren sich relativ zu ihrem nächstgelegenen positionierten Vorfahren. Hier tanzt das Element wie es ihm gefällt, ohne sich um seine Nachbarn zu scheren.

.container {
    position: relative;
}

.element {
    position: absolute;
    top: 50px;
    right: 100px;
}

Das .element wird relativ zur Klasse .container 50px von oben und 100px von rechts positioniert.

Token: position fixed

Fixed

Der Starrkopf

fixed ist die Position für die Elemente, die sich einfach keinen Millimeter bewegen wollen, egal, wie weit man die Seite nach oben oder unten scrollt. Sie bleiben fest an ihrer Position, wie ein Schloss auf einer Schatzkiste.

.element {
    position: fixed;
    bottom: 10px;
    right: 10px;
}

Das .element wird fixiert und bleibt immer 10px vom unteren und rechten Rand des Viewports entfernt.

Token: position sticky

Sticky

Der Klebrige

sticky ist der Trickser unter den Positio-nierungsarten. Zuerst bleibt das Element brav in seiner Reihe, aber sobald der Benutzer scrollt, wird es plötzlich festgeklebt. Ein bisschen wie ein Klebezettel, der an seiner Stelle bleibt.

.element {
    position: sticky;
    top: 0;
}

Das .element bleibt bis zum oberen Rand des Containers scrollbar und „klebt“ dort.

Token: z-index

Z-Index

Der Herr der Ebenen

Wenn deine Elemente sich gegenseitig überlappen, kommt der z-index ins Spiel. Er bestimmt, wer oben und wer unten tanzt. Je höher der z-index, desto weiter oben im Layout-Stapel schwebt das Element. Damit behältst du die Kontrolle, wer die Bühne betritt und wer im Hintergrund bleibt.

.element {
    position: absolute;
    z-index: 10;
}

Das .element wird absolut positioniert und liegt mit z-index: 10 über anderen Elementen.

CSS
/* Statisch */
.static {
    border: 2px solid #f39c12;
    background: linear-gradient(135deg, #f1c40f, #f39c12);
}

/* Relativ */
.relative {
    position: relative;
    left: 30px;
    top: 20px;
    border: 2px solid #3498db;
    background: linear-gradient(135deg, #5dade2, #3498db);
}

/* Absolut */
.absolute {
    position: absolute;
    right: 20px;
    top: 50px;
    border: 2px solid #e74c3c;
    background: linear-gradient(135deg, #ec7063, #e74c3c);
}

/* Fixiert */
.fixed {
    position: fixed;
    bottom: 20px;
    left: 20px;
		z-index: 10;
    /* eigene Stile */
    border: 2px solid #2ecc71;
    background: linear-gradient(135deg, #58d68d, #2ecc71);
}

/* Sticky */
.sticky {
    position: sticky;
    top: 20px;
    z-index: 5;
    /* eigene Stile */
    border: 2px solid #9b59b6;
    background: linear-gradient(135deg, #af7ac5, #9b59b6);
}

/* Z-Index-Demonstration */
.z-container {
    position: relative;
    margin-top: 40px;
    height: 200px;
}

.z-layer-1 {
    position: absolute;
    top: 50px;
    left: 50px;
    width: 200px;
    height: 100px;
    z-index: 1;
    /* eigene Stile */
    background: linear-gradient(135deg, #2980b9, #3498db);
    border: 2px solid #2980b9;
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.3);
}

.z-layer-2 {
    position: absolute;
    top: 30px;
    left: 120px;
    width: 200px;
    height: 100px;
    z-index: 2;
    /* eigene Stile */
    background: linear-gradient(135deg, #27ae60, #2ecc71);
    border: 2px solid #27ae60;

    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.3);
}

.z-layer-3 {
    position: absolute;
    top: 10px;
    left: 190px;
    width: 200px;
    height: 100px;
    z-index: 3;
    /* eigene Stile */
    background: linear-gradient(135deg, #e74c3c, #ec7063);
    border: 2px solid #e74c3c;
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.3);
}
Nach oben scrollen