Abstände

Abstände können genau wie der "border" in alle Richtungen definiert werden, die im Boxmodell möglich sind.

Falls bei einem Element noch kein Abstand definiert wurde, dann wird der Abstand vergeben der im "Browser-Stylesheet" vordefiniert ist. Der Abstand zwischen Rahmen ("border") und dem Inhalt ("Content") wird "padding" genannt. Der Abstand zwischen Rahmen ("border") und dem nächsten Element bzw. dem Bildschirmrand wird "margin" genannt.


Padding / Innenabstand

Der Innenabstand ("padding") kann in alle Richtungen unabhängig definiert werden.

Zur besseren Darstellung werden wir die Listenelemente von der geordneten Liste nebeneinanderstellen und einen kleinen Rahmen geben.

Einfacher Rahmen um Inline-Listenelemente

ol li {
 display: inline;
 border: 1px solid black;
}
1 Pixel starke linie

Im Boxmodell ist zu erkennen, dass der Rahmen ("border") an jeder Seite 1px stark ist.

Um den Innenabstand ("padding") zu definieren, schreiben wir zusätzlich in den Deklarationsblock die Werte für alle Innenabstände.

Gleichmäßiger Innenabstand

ol li {
 display: inline;
 border: 1px solid black;
 padding-top: 10px;
 padding-right: 10px;
 padding-bottom: 10px;
 padding-left: 10px;
}

Im Boxmodell ist gut zu erkennen, dass der Abstand zwischen dem "Content" und dem "border" auf jeder definierten Seite 10px beträgt.

10 Pixel breiter Abstand zum Rahmen

Wenn alle Seiten den gleichen Abstand erhalten sollen, dann genügt auch die einfache Anweisung:

Gleichmäßiger Innenabstand

ol li {
 padding: 10px;
}

Alle 4 Seiten bekommen dadurch den gleichen Wert zugewiesen.


Damit es bei einer widersprüchlichen Vergabe von Anweisungen zu keinen Fehler kommt, verwendet CSS immer die zuletzt gültige Deklaration. Genau diese Eigenschaft können wir uns zunutze machen und im Nachhinein den Wert für "padding-bottom" verändern.

Abstandswert Überschreiben

ol li {
 display: inline;
 border: 1px solid black;
 padding: 10px;
 padding-bottom: 5px;
}

Alle Seiten haben einen Abstand von 10px erhalten. Direkt als Nächstes wurde der Wert für die Unterseite auf 5px korrigiert, ohne das es zu einen Fehler kommt.

Überschriebener Abstandswert

Eine andere gültige Schreibweise für das gleiche Ergebnis wäre:

Kurzschreibweise für Abstände

ol li {
 display: inline;
 border: 1px solid black;
 padding: 10px 10px 5px 10px;
}

Bei dieser Schreibweise ist darauf zu achten, dass die Aufzählung im Uhrzeigersinn erfolgt, der erste Aufzählungswert steht für top, darauf folgt right, darauf folgt bottom und zuletzt wird left definiert.


Wenn in CSS nur 3 Werte angegeben werden, dann interpretiert der Browser den ersten Wert für "top", den zweiten Wert für beide Seiten und den dritten Wert für "bottom".

Kurzschreibweise für Abstände

ol li {
 display: inline;
 border: 1px solid black;
 padding: 10px 5px 8px;
}
3 Werte definieren 4 Seiten

Wenn nur 2 Werte vergeben werden, interpretiert der Browser den ersten Wert für "top" und "bottom". Der zweite Wert wird demnach für beide Seiten verwendet.

Kurzschreibweise für Abstände

ol li {
 display: inline;
 border: 1px solid black;
 padding: 10px 15px;
}
2 Werte definieren 4 Seiten

Wenn eine oder mehrere Seiten keinen Abstand bekommen sollen, dann kann auch einfach die 0 ohne Einheit angegeben werden.

Kurzschreibweise für Abstände

ol li {
 display: inline;
 border: 1px solid black;
 padding: 0 15px;
}
2 Werte definieren 4 Seiten

Margin / Außenabstand

Die Vergabe der Außenabstände verläuft wie bei den Innenabständen.

Die Werte können entweder ausgeschrieben oder unter Berücksichtigung der Interpretation des Browsers auch in Kurzschreibweise angegeben werden.

Kurzschreibweise für Abstände

ol li {
 display: inline;
 border: 1px solid black;
 padding: 0 15px;
 margin: 0 10px 5px 15px;
}
Außen und Innenabstand im Boxmodell

Besonderheit Tabellen

Bei Tabellen gibt es noch ein paar Besonderheiten, die zu beachten sind.

Im Boxmodell des Browsers ist zu erkennen, dass die <td> und <th>-Elemente keinen "margin" haben.

kein margin bei th und td Elementen

Das Element <tr> besitzt weder "margin" noch "padding".

kein margin und kein padding bei tr Elementen

Das Element <tbody> hat auch weder "margin" noch "padding".

kein margin und kein padding bei tbody Elementen

Nur das Element <table> hat alle Bestandteile des Boxmodells.

Alle Bestandteile vom Borderboxmodell

Einen "border" um die Tabelle zu zeichnen, sollte kein Problem darstellen.

Rahmen um Tabelle definieren

table {
 border: 1px solid black;
}
Rahmenlinie um Tabelle

Die Zellen der Tabelle sollen den gleichen "border" erhalten, wie auch die Tabelle ihn hat. Dazu müssen wir nur den Selektor anpassen.

Rahmen um Tabelle und Datenfelder definieren

table, td {
 border: 1px solid black;
}

Direkt hinter dem "Selektor" "table" setzen wir ein Komma und ein Leerzeichen für eine Aufzählung. Danach benennen wir direkt den nächsten "Selektor". Somit können wir für die "Selektoren" "table" und "td" die gleichen "Deklarationen" verwenden, ohne den "Deklarationsblock" erneut zu schreiben.

Rahmenlinie um Tabelle und Datenfelder

Die Abstände zum Außenrand und auch zwischen den Zellen werden noch vom "Browser-Stylesheet" bestimmt.

Um einen Abstand zwischen den Zellen und dem Außenrand zu bekommen, können wir dem Selektor "table" einfach einen "padding" zuweisen.

Abstand zwischen Datenfelder und Außenrand

table {
 padding: 10px;
}
Abstand zwischen Datenfelder und Außenrahmen

Dadurch bleib die Lücke zwischen den Zellen jedoch unberührt. Weil <tr> und <td>-Elemente keinen "margin" haben, greifen wir auf eine andere Eigenschaft zu. Wir entfernen die Eigenschaft "padding" und verwenden stattdessen die Eigenschaft "border-spacing".

Abstand zwischen den Datenfelder

table {
 border-spacing: 10px;
}

Dadurch erhalten wir einen Abstand zwischen allen Rahmenlinien der Tabelle.

Abstand zwischen den Datenfeldern

Den Abstand zwischen "Content" und "border" bei den <td>-Elementen können wir wie üblich über das "padding" definieren.

Abstand innerhalb der Datenfelder

td {
 padding: 5px;
}
Abstand innerhalb derDatenfelder
Weiter mit Größen und Einheiten