Inhaltsverzeichnis

CSS Floating und Positionierung

Diese Dokumentation erklärt das Verhalten von Elementen im normalen Textfluss (Normal Flow) sowie Techniken zur Steuerung des Layouts mittels Floating, Clearing, CSS Shapes und verschiedenen Positionierungsarten[cite: 10].

1. Der normale Textfluss (Normal Flow)

Im normalen Fluss ordnet der Browser Elemente standardmäßig von oben nach unten (in der Reihenfolge des HTML-Quelltexts) und von links nach rechts an[cite: 10]:

2. Floating (Schwebende Elemente)

Die Eigenschaft float nimmt ein Element aus dem normalen vertikalen Fluss und verschiebt es so weit wie möglich nach links oder rechts[cite: 10]. Nachfolgender Inhalt fließt um das geschwebte Element herum[cite: 10].

Eigenschaften & Werte

img.hero {
  float: right;
  margin-left: 1em;
}

Wichtige Verhaltensregeln beim Floating

3. Clearing (Freistellen von geschwebten Elementen)

Die Eigenschaft clear verhindert, dass ein Element neben einem geschwebten Element steht, und zwingt es unterhalb des geschwebten Bereichs zu beginnen[cite: 10].

Eigenschaften & Werte

/* Beispiel: h2 wird unter das gefloatete Bild gezwungen */
img.portrait {
  float: left;
  margin-right: 0.5em;
}
 
h2 {
  clear: left;
  margin-top: 2em;
}

4. Textumbruchformen mit CSS Shapes

Mit CSS Shapes lässt sich die geometrische Form anpassen, entlang derer fließender Text ein geschwebtes Element umströmt[cite: 10].

shape-outside

Legt die Abrollkante für den umfließenden Text fest[cite: 10].

shape-margin

Definiert den Mindestabstand zwischen der definierten Form und dem umgebenden Text (z. B. in px oder em)[cite: 10].

/* Kreisförmiger Umfluss */
img.circle-wrap {
  float: left;
  shape-outside: circle(200px);
}
 
/* Umfluss basierend auf Pfadkoordinaten */
img.custom-shape {
  float: left;
  shape-outside: polygon(0px 0px, 186px 0px, 225px 34px, 0px 300px);
  shape-margin: 10px;
}

5. Positionierungsarten (position)

Die Eigenschaft position bestimmt das Positionierungsmodell eines Elements[cite: 10]. In Kombination mit den Offset-Eigenschaften top, right, bottom und left wird die genaue Lage festgelegt[cite: 10].

Übersicht der Werte

Beispiele für Versatz & Containing Blocks

/* Relative Positionierung */
em.highlight {
  position: relative;
  top: 2em;  /* Verschiebt das Element nach UNTEN */
  left: 3em; /* Verschiebt das Element nach RECHTS */
}
 
/* Absolute Positionierung in einem Bezugscontainer */
div.parent-box {
  position: relative; /* Dient nun als Bezugspunkt (Containing Block) */
  padding: 15px;
}
 
div.parent-box span.badge {
  position: absolute;
  top: 10px;
  right: 10px;
}

<note alert> Hinweis zu Versatz-Eigenschaften: Versatz-Werte geben an, wie weit ein Element von der jeweiligen Kante weg geschoben wird (z. B. schiebt top: 200px; das Element von oben nach unten)[cite: 10]. Zwei Versatz-Angaben (z. B. top und left) sind in der Regel ausreichend[cite: 10]. </note>

6. Stapelreihenfolge (z-index)

Wenn sich positionierte Elemente überlappen, steuert z-index die Darstellung auf der Z-Achse (Vorne/Hinten)[cite: 10].

.box-back {
  position: absolute;
  z-index: 1;
}
 
.box-front {
  position: absolute;
  z-index: 100; /* Liegt im Vordergrund */
}