Das HTML-Boxenmodell


Grundlagen des Boxenmodells

Jedes HTML-Element wird im Browser in einer Box, also in einer rechteckigen Fläche dargestellt.

Das Boxenmodell unterteilt ein Dokument in verschachtelte und neben-/untereinander angeordnete Boxen. Die Boxen sind für den Leser nicht immer sichtbar – bilden jedoch immer die Grundlage für das Seitenlayout.

Das Boxenmodell unterscheidet in HTML zwei Typen von Elementen, die Block-Elemente sowie die Inline-Elemente.

Beispiel

In dem Beispiel sind in der Browser-Anzeige die Boxen eingezeichnet: Der Body, alle Überschriften, Listen, Listenelemente und Absätze sind Blockboxen, das em-Element ist eine Inline-Box.

Die Boxen sind ineinander verschachtelt: Das Body-Element (schwarze Box) enthält alle Boxen seiner direkten Kinder (blaue Boxen der Elemente h1, ul und p). Jedes Listenelement bildet ebenfalls eine Box (grüne Boxen, enthalten in der blauen ul-Box). Alle Boxen sind so breit wie ihre übergeordnete Box (bis auf einen kleinen Rand, der hier zur besseren Übersichtlichkeit dargestellt wird). Auch das Inline-Element em wird in einer Box dargestellt (rote Box), allerdings ist diese Box nur so breit wie ihr Inhalt.

See the Pen HTML-Boxen-Layout by Barbara Dörsam, HdM Stuttgart (@bdhdm) on CodePen.

Block-Elemente

Zu den Block-Elementen gehören alle Elemente, welche die gesamte zur Verfügung stehende Breite für sich beanspruchen. Die Box eines Blockelementes ist somit immer genauso breit wie das jeweils übergeordnete Element (z.B. das Browser-Fenster). Vor und nach einem Block-Element befindet sich immer ein Zeilensprung.

Sind Block-Elemente ineinander verschachtelt, so richtet sich die Breite des Kind-Elementes nach dem Eltern-Element: standardmäßig ist das Kind genauso breit, dass es die maximale Breite hat und vollständig ins Eltern-Element passt.

Beispiel für Block-Elemente

See the Pen HTML – Boxen-Block by Barbara Dörsam, HdM Stuttgart (@bdhdm) on CodePen.

Beispiel für verschachtelte Block-Elemente

See the Pen HTML – Boxen-Verschachtelt by Barbara Dörsam, HdM Stuttgart (@bdhdm) on CodePen.

Bisher wurden bereits folgende Block-Elemente eingeführt:

  • Überschriften: <h1> , …, <h6>
  • Absätze: <p>
  • Listen und deren Einträge: <ol>, <ul>, <dl>, <li>, <dd>, <dt>
  • Allgemeines Blockelement: <div>
Inline-Elemente

Inline-Elemente sind Elemente, die in derselben Zeile stehen wie ihre Vorgänger und Nachfolger. Die Box eines Inline-Elementes ist immer genauso breit und genauso hoch wie der Inhalt des Elements. Weder vor noch nach einem Inline-Element steht ein Zeilensprung.

Beispiel für Inline-Elemente

See the Pen HTML – Boxen-Inline by Barbara Dörsam, HdM Stuttgart (@bdhdm) on CodePen.

Bisher wurden bereits folgende Inline-Elemente eingeführt:

  • Bilder: <img>
  • Hervorhebungen: <em>, <strong>, <mark>
  • Links: <a>
Aufbau der Boxen durch den Browser

Die Einteilung der HTML-Elemente in die beiden Kategorien, Block- und Inline-Elemente, wird vom Browser für das Aufbauen einer Web-Seite benötigt: Der Browser berechnet bei der Darstellung einer Seite zunächst die Größe und die Lage der Boxen, bevor er diese mit Inhalten füllt. Die Berechnung folgt den Regeln:

  1. Block-Elemente ( <p>, <h1>, …) beanspruchen die gesamte Fensterbreite und werden daher untereinander angeordnet. Ihre Höhe ist genau so groß, dass der gesamte Inhalt in die Box passt.
  2. Jedes Element (Inline- und Blockelement) wird so weit wie möglich links und oben positioniert.
  3. Wenn weitere Elemente dazukommen, werden sie jeweils rechts von ihrem Vorgänger angeordnet, und zwar so lange, bis kein Platz mehr ist. 
  4. Wenn rechts kein Platz mehr ist, rutscht das nächste Element eine Zeile tiefer und ganz nach links. 
  5. Verschachtelte Elemente werden nach dem selben Muster aufgebaut. Jedes Kindelement ist dabei maximal so breit und so hoch wie sein übergeordnetes (Eltern-)Element.
Aufgaben zum Thema HTML-Boxen