CSS Box-Modell

zum Anfang der Seite Box-Modell

In CSS ist definiert, dass jedes HTML-Element bei der Darstellung im Browser eine Elementbox erzeugt. Diese ist eine rechteckige Fläche für den Inhalt des HTML-Elements und kann weitere Stilelemente wie Rahmen, Hintergrundfarben und Hintergrundbilder umfassen. Der Aufbau der Elementbox wird Box-Modell genannt.

Die Elementboxen dienen dazu, die Abmessungen der Darstellungsfläche vorzugeben, das Aussehen der Stilelemente (Rahmen, Hintergrundfarben, Hintergrundbilder, Deckkraft/Transparenz) sowie die Abstände zwischen ihnen festzulegen als auch die Platzierung und Abstände der Elementboxen unterschiedlicher HTML-Elemente zueinander zu bestimmen.

Aufbau des Box-Modells

Die Elementbox des Boxmodells von CSS ist wie die Schichten einer Zwiebel aufgebaut und umfasst von innen nach außen den:

Hier ein Beispiel mit blauen Rahmen und hellgelber Hintergrundfarbe, wobei der Rahmen sowei der Innen- und Außenabstand jeweils 2em breit sind:

Außenabstand - margin

Rahmen - border

Innenabstand - padding

Inhalt - content

Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum.

Innenabstand - padding

Rahmen - border

Außenabstand - margin

CSS-Eigenschaften für das Box-Modell

Es gibt einige CSS-Eigenschaften mit denen man das Erscheinungsbild der einzelnen Schichten und auch der verschiedenen Stilelemente festlegen kann.

Es gibt dabei Eigenschaften für die Abmessungen der Schichten, durch die das Layout festgelegt wird.
Und es gibt Eigenschaften für Formatierungen der Stilelemente, durch die das Aussehen festgelegt wird.

In Folge wird ein Überblick für das Zusammenspiel gegeben. Die Details in eigenen ...

Inhalt des HTML-Elements 
(z.B. Text (Überschriften, Absätze, Listen, Tabellen) und Grafik
s der umgeben die Inhalte jedes einzelnen HTML-Elements,.

Diese Elementboxen dienen dazu, mit einigen CSS-Eigenschaften
die Abmessungen des Raums festzulegen, den der Inhalt einnehmen kann,
um Abstände zwischen den Inhalten der einzelnen HTML-Elemente zu erzeugen,
um den Abstand zwischen Inhalt und Rahmen vorzugeben,
die Größe der Fläche des Hintergrundes (Hintergrundfarben und -bilder) zu bestimmen.

Inhalt (content)

Der Inhalt umfasst alles, das im Gültigkeitsbereich des HTML-Elements steht: das können Texte sein (wie bei: Absätze, Überschriften, Listen, etc.), andere HTML-Elemente oder Inhalte bei ersetzten HTML-Elementen (z.B. ein Bild beim Element img).

Innenabstand (padding)

Der Innenabstand bestimmt die Entfernung zwischen Außenkante des Inhalts und der Innenkante des Rahmens, und - auch wenn kein Rahmen deklariert ist - die Entfernung zwischen Außenkante des Inhalts und der Außenkante des Hintergrundes (Hintergrundfarben und -bilder).

Rahmen (border)

Ist der Rahmen, wie er mit der CSS-Eigenschaft border definiert wird.

Außenabstand (margin)

Bestimmt die Entfernung zwischen Außenkante des Rahmens und anderen HTML-Elementen, die an dieses grenzen oder es umgeben.

Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum.

In oberer Abbildung sieht man so eine Elementbox für einen Absatz. Die grellen Farben dienen nur zur Illustration, sie sind nicht Teil der CSS-Regel.
Der Absatz in diesem Beispiel hat einen Außenabstand (margin) von 30 Pixel, einen Rahmen (border) von acht Pixel und einen Innenabstand (padding) von 30 Pixel: p { margin: 30px; border: 8px; padding: 30px; }.
Der gelb eingefärbte Bereich ist der Außenabstand (margin), der grün eingefärbte ist der Rahmen (border) und der rot eingefärbte ist der Innenabstand (padding).

 

zum Anfang der Seite Veranschaulichung: Rahmen

Die CSS-Eigenschaft die bei Rahmen bezüglich des Boxmodells eine Rolle spielt ist die Stärke des Rahmens, also border-width. Das Formatieren des Rahmens einer Box ist auch für die meisten Anfänger/innen kein Problem, da Rahmen sichtbar und somit "begreifbar" sind und auch weil Rahmen vertraut sind, da man schon meist in der Kindheit Rahmen gezeichnet hat.

Wie man Rahmen LINK zu CSS eigenschaften Rahmen

Was man jedoch bedenken muss, ist dass vorhandene Rahmen eine Breite haben und dass diese nicht in der angegebenen Breite width einer Box inkludiert sind (siehe auch LINK). Daher darf man nicht vergessen die Stärke des Rahmens border-width beim Platzbedarf der Box zur angegebenen Breite width dazuzählen (addieren). Dies gilt insbesondere, wenn man ein "pixelgenaues" Layout verwendet, denn dann kann jedes einzelne Pixel schon dazu führen, dass es nicht so klappt wie man es gedacht hat. Somit können auch hauchdünne Rahmenlinien von nur einem Pixel, die man ansonsten kaum in Betracht ziehen würde, zu Problemen führen.

Beispiel

Eine Box mit einer Breite width von 400 Pixel hat genügend Platz:

p {
   width: 400px;
   background-color: #FFFF99;
}

Beispiel für eine Box mit immer gleicher Breite.

 

Eine Box mit der selben Breite width von 400 Pixel aber mit einem linken und rechten Rahmen border von jeweils 50 Pixel braucht mehr Platz und sprengt den zur Verfügung stehenden Platz:

p {
   width: 400px;
   border-width: 0 50px;
   border-style: solid;
   background-color: #FFFF99;
}

Beispiel für eine Box mit immer gleicher Breite.

Anmerkung: Natürlich sind so dicke Rahmen nicht realistisch und dienen hier der Veranschaulichung. Aber bei "pixelgenauem" Layout kann auch schon ein Rahmen mit einer Stärke von einem Pixel zu unerwünschten Effekten führen.

 

zum Anfang der Seite Veranschaulichung: Innen- und Außenabstand

Der Innenabstand bestimmt den Abstand zwischen dem Inhalt (Text, Bild, …) und Rahmen bzw. zwischen Inhalt und der Außenkante der eingefärbten Fläche oder des Hintergrundbildes.

Der Außenabstand bestimmt den Abstand des Inhalts (inklusive des Rahmens, Hintergrundfarbe oder -bild) zu anderen, angrenzenden bzw. umgebenden HTML-Elementen.

Beispiel mit Rahmen

Um den Abstand zwischen Inhalt und Rahmen zu erhöhen, muss man den Innenabstand entsprechend groß angeben. Eine größerer Außenabstand bewirkt nichts.

Ein Absatz mit einem roten Rahmen, der Innenabstand ist 0, der Außenabstand ist ebenfalls 0:

p {
   border: solid 3px #CC0033; 
   padding: 0; 
   margin: 0;
}

Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum.

 

Ein Absatz mit einem roten Rahmen, der Innenabstand ist 20 Pixel groß, der Außenabstand ist 0:

p {
   border: solid 3px #CC0033;
   padding: 20px;
   margin: 0;
}

Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum.

 

Ein Absatz mit einem roten Rahmen, der Innenabstand ist 0, der Außenabstand ist 20 Pixel groß:

p {
   border: solid 3px #CC0033;
   padding: 0;
   margin: 20px;
}

Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum.

 

Ein Absatz mit einem roten Rahmen, der Innenabstand ist 20 Pixel und auch der Außenabstand ist 20 Pixel groß:

p {
   border: solid 3px #CC0033;
   padding: 20px;
   margin: 20px;
}

Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum.

 

Beispiel mit Hintergrundfarbe

Um den Abstand zwischen Inhalt und Außenkante des Hintergrunds zu erhöhen, muss man den Innenabstand entsprechend groß angeben. Eine größerer Außenabstand bewirkt nichts.

Ein Absatz mit einer gelben Hintergrundfarbe, der Innenabstand ist 0, der Außenabstand ist ebenfalls 0:

p {
   background-color: #FFFF66;
   padding: 0;
   margin: 0;
}

Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum.

 

Ein Absatz mit einer gelben Hintergrundfarbe, der Innenabstand ist 20 Pixel groß, der Außenabstand ist 0:

p {
   background-color: #FFFF66;
   padding: 20px;
   margin: 0;
}

Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum.

 

Ein Absatz mit einer gelben Hintergrundfarbe, der Innenabstand ist 0, der Außenabstand ist 20 Pixel groß:

p {
   background-color: #FFFF66;
   padding: 0;
   margin: 20px;
}

Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum.

 

Ein Absatz mit einer gelben Hintergrundfarbe, der Innenabstand ist 20 Pixel und auch der Außenabstand ist 20 Pixel groß:

p {
   background-color: #FFFF66;
   padding: 20px;
   margin: 20px;
}

Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum.

 

zum Anfang der Seite Veranschaulichung: Inhalt (Breite und Höhe)

Werte für die Breite width

Deklariert man keine Breite, so wirkt der Defaultwert (Initialwert) auto. Dies bewirkt bei Block-Elementen, dass die Box so breit wie möglich ist und bei Inline-Elementen, dass die Box so breit wie nötig ist.

Was genau "so breit wie möglich" bedeutet, sieht man unter LINK Vorerst beschäftigen wir uns mit konkreten Angaben einer Breite.

Beispiel

Eine Box mit einer Breite width vom Defaultwert auto passt sich den Gegebenheiten an und ist so breit wie es ihr möglich ist.

 

Sind für Innenabstand, Rahmen und Außenabstand keine Werte angegeben, so werden diese Schichten auch nicht dargestellt und "nehmen daher auch keinen Platz weg":

p {
   width: auto;
   background-color: #FFFF99;
}

Eine Box ohne vorgegebener Breite ist immer so breit wie möglich.

 

Ein Außenabstand von 100 Pixel drückt den Inhaltsbereich der Box zusammen, die Breite width verringert sich dementsprechend:

p {
   width: auto;
   background-color: #FFFF99;
   margin: 0 100px;
}

Eine Box ohne vorgegebener Breite ist immer so breit wie möglich.

Zum Außenabstand von 100 Pixel drückt auch noch ein Rahmen von einer Stärke von 5 Pixel den Inhaltsbereich der Box weiter zusammen, die Breite width verringert sich dementsprechend:

p {
   width: auto;
   background-color: #FFFF99;
   margin: 0 100px;
   border-width: 0 5px;
   border-style: solid;
   border-color: #999999;
}

Eine Box ohne vorgegebener Breite ist immer so breit wie möglich.

 

 

Wenn man der Box mit width eine bestimmte Breite gibt, so bezieht sich diese nur auf den Inhalt (content).

Hat eine Box jedoch für eine oder mehrere der Schichten (Innenabstand, Rahmen, Außenabstand) einen Wert größer als 0, so belegt die Box eine größere Fläche als der Wert für width angibt.

Wenn eine Box dabei einen Rahmen oder einen Hintergrund (Hintergrundfarbe oder -bild) hat, so sieht sie breiter aus, als der Wert für width angibt. In der Praxis muss man aufpassen, da man sehr leicht verleitet ist zu glauben, dass sich der Wert von width auf diese "optische Breite" bezieht. Mit den Werten von den anderen Schichten ergibt sich dann aber eine viel breitere Box als man geplant hat. Anmerkung: Der Microsoft Internet Explorer hat in früheren Versionen den Wert von width falsch zugewiesen, und zwar der "optischen Breite" inklusive der Ausdehnung von Innenabstand und Rahmen. Daher wurden die Boxen sehr oft zu klein dargestellt. Dieser Fehler ist aber schon vernachlässigbar, da er nur bis zur Version Version 5.5 und auch noch in der Version 6 im Quirks-Mode vorhanden ist. (siehe auch CSS4You: Browser und das Boxmodell)

Beispiel

Eine Box mit einer Breite width von 200 Pixel:

p {
   width: 200px;
   background-color: #FFFF99;
}

Beispiel für eine Box mit immer gleicher Breite.


Eine Box mit einer Breite width von 200 Pixel und einen linken und rechten Innenabstand padding von jeweils 50 Pixel:

p {
   width: 200px;
   padding: 0 50px;
   background-color: #FFFF99;
}

Beispiel für eine Box mit immer gleicher Breite.


Eine Box mit einer Breite width von 200 Pixel und einen linken und rechten Rahmen border von jeweils 25  Pixel:

p {
   width: 200px;
   border-width: 0 25px;
   border-style: solid;
   background-color: #FFFF99;
}

Beispiel für eine Box mit immer gleicher Breite.


Eine Box mit einer Breite width von 200 Pixel und einen linken und rechten Innenabstand padding von jeweils 50 Pixel sowie einen linken und rechten Außenabstand margin von jeweils 100 Pixel:

p {
   width: 200px;
   padding: 0 50px;
   margin: 0 100px;
   background-color: #FFFF99;
}

Beispiel für eine Box mit immer gleicher Breite.

 

 

Werte für die Höhe heigth

Deklariert man keine Höhe, so wirkt der Defaultwert (Initialwert) auto. Dies bewirkt sowohl bei Block-Elementen als auch bei Inline-Elementen, dass die Box so hoch wie nötig ist.

Beispiel

Eine Box mit einer Höhe heigth vom Defaultwert auto passt sich den Gegebenheiten an und ist so hoch wie nötig.

Eine Box eine Block-Elements ist ohne vorgegebener Höhe immer so hoch wie nötig. Der Text wird an der rechten Kante des Inhaltsbreichs umgebrochen. Dadurch entstehen eine oder mehrere Zeilen, die die Box auseinander drücken und so die Höhe bestimmen. Die Höhe wird einerseits durch die aktuelle Breite bestimmt, aber auch durch die "Menge" des Textes.

Ist eine Box relativ breit, so benötigt der Text weniger Zeilen und somit wird die Box nicht so hoch:

p {
   width: auto;
   background-color: #FFFF99;
}

Eine Box ohne vorgegebener Höhe ist immer so hoch wie nötig. Die Höhe wird einerseits durch die aktuelle Breite bestimmt, aber auch durch die "Menge" des Textes.

 

Wird eine Box schmäler, weil sie z.B. einen großen Außenabstand hat, so benötigt der Text mehr Zeilen und somit wird die Box auch höher:

p {
   width: auto;
   background-color: #FFFF99;
   margin: 0 100px;
}

Eine Box ohne vorgegebener Höhe ist immer so hoch wie nötig. Die Höhe wird einerseits durch die aktuelle Breite bestimmt, aber auch durch die "Menge" des Textes.

Ist in einer Box mehr Text, so benötigt dieser mehr Zeilen und somit wird die Box auch höher:

p {
   width: auto;
   background-color: #FFFF99;
}

Eine Box ohne vorgegebener Höhe ist immer so hoch wie nötig. Die Höhe wird einerseits durch die aktuelle Breite bestimmt, aber auch durch die "Menge" des Textes. Wenn mehr Text in der Box steht, so benötigt dieser mehr Platz. Das bedeutet natürlich auch mehr Zeilen was bewirkt, dass die Box höher ist.

In der Praxis wird meistens in irgend einer Weise die Breite der Boxen vorgegeben, aber die Höhe wird flexibel belassen. Dies bedeutet, dass sich die Höhe jederzeit ändern kann. Dies sind wir aber gewöhnt, da die bei jedem Text so ist, sei es in einer Textverarbeitung oder wenn man mit der Hand schreibt. Hat ein Buch mehr Text, so wird es nicht breiter, sondern es hat mehr Seiten, was gleichbedeutend ist, mit der Text ist höher.

Gibt man zu einer fixierten Breite auch noch eine fixierte Höhe an, so kommt es meist zu Problemen mit einem "Überlauf". Es gibt viele Möglichkeiten, dass der Text mehr Platz benötigt als geplant - aber die Box kann nicht höher werden. Somit läuft die Box über. Um dies in den Griff zu bekommen gibt es mehrere Varianten, die aber nur in einigen Fällen sinnvoll sind.

siehe auch overflow

 

zum Anfang der Seite Berechnung

Berechnung

Die Fläche, die eine Elementbox einnimmt, setzt sich aus allen Schichten der Box zusammen.

Das Ausmaß in der Horizontalen (waagerecht) ist, von links nach rechts gemessen, die Summe der Ausdehnungen von:
linker Außenabstand + linke Rahmenstärke + linker Innenabstand +
Inhalt +
rechter Innenabstand + rechte Rahmenstärke + rechter Außenabstand

Ausmaß der Elementebox in der Breite

Jeden der einzelnen Schichten kann man mit CSS-Regeln einen Wert für die Ausdehnung (Größe) zuweisen und zwar mit folgenden Eigenschaften:
linker Außenabstand: margin-left
linker Rahmen: border-left-width
linker Innenabstand: padding-left
Inhalt (Breite): width
rechter Innenabstand: padding-right
rechter Rahmen: border-right-width
rechter Außenabstand: margin-right

linker Außenabstand:
margin-left
linker Rahmen:
border-left-width
linker Innenabstand:
padding-left
Inhalt (Breite):
width
rechter Innenabstand:
padding-right
rechter Rahmen:
border-right-width
rechter Außenabstand:
margin-right
linker Außen-abstand linker Rahmen linker Innen-abstand Inhalt rechter Innen-abstand rechter Rahmen rechter Außen-abstand
             

 

Das Ausmaß der Box (Gesamtbreite) ist daher margin-left + border-left-width + padding-left + width + padding-right + border-right-width + margin-right.

 

zum Anfang der Seite Darstellung im Container (Verschachtelung)

Die Struktur von HTML-Elementen in einer HTML-Datei ist so, dass sie hintereinander platziert oder in einander verschachtelt sein können. Genauer betrachtet befindet sich sogar jedes HTML-Element (das dargestellt werden soll) verschachtelt in einem anderen. Sebst das Element <body> befindet sich im Element <html>.

Betrachtet man die Struktur aus Sicht des DOM (Document Objekt Modell), wie im Kapitel über Dokumentstruktur beschrieben, hat jedes HTML-Element ein Eltern-Element innerhalb dessen es sich als Kind-Element befindet.

Bei der Darstelleung in einem Browser hat dieses Eltern-Element die Funktion eines Containers, innerhalb dessen alle seine Kind-Elemente dargestellt werden. Das heißt, dass das Eltern-Element den Platz beschränkt, den ein Kind-Element einnehmen kann. Genauer gesagt, ist es der Inhaltsbereich (content) des Eltern-Elements, innerhalb dessen alle Kind-Elemente eines Eltern-Elements dargestellt werden.

Blockelemente

Wenn das Kind-Element ein Block-Element ist und keine Breite width deklariert hat, so ist dieses so breit wie möglich. Es füllt daher waagrecht den gesamten Inhaltsbereich des Eltern-Elements aus. Somit bestimmt ein Eltern-Element die waagrechten Ausmaße seiner Kind-Elemente.

Beispiel

Bei Block-Elementen wird das waagrechte Ausmaß des Kind-Elements durch die Breite width des Inhaltsbereich content des Eltern-Elements bestimmt:

Die punktierte Linie zeigt den Inhaltsbereich (content) des Eltern-Elements an.

Die durchgezogene Linie zeigt das Kind-Element an.

Weiterer Text im Elternelement.

Ist das Eltern-Element breiter, hat auch das Kind-Element mehr Platz und ist auch breiter:

Die punktierte Linie zeigt den Inhaltsbereich (content) des Eltern-Elements an.

Die durchgezogene Linie zeigt das Kind-Element an.

Weiterer Text im Elternelement.

Andererseits ist das Kind-Element, wenn es keine Höhe heigth deklariert hat, so hoch wie nötig siehe oben. Jedes Kind-Element drückt den Inhaltsbereich des Eltern-Elements auseinander. Für die Höhe des Eltern-Elements bedeutet das "so hoch wie nötig", dass die Höhe die Summe der Ausmaße der Kind-Elemente entspricht. Somit bestimmen die Ausmaße (Höhen und Abstände) der Kind-Elemente die senkrechte Höhe des Eltern-Elements.

Bei Block-Elementen wird die Höhe height des Eltern-Elements durch die Summe der Ausmaße (Höhen und Abstände) der Kind-Elemente bestimmt:

Die punktierte Linie zeigt den Inhaltsbereich (content) des Eltern-Elements an.

Die durchgezogene Linie zeigt das Kind-Element an.

Weiterer Text im Elternelement.

Sind im Eltern-Element mehrere oder größere Kind-Elemente, so wird auch die "Höhe" des Eltern-Elements größer:

Die punktierte Linie zeigt den Inhaltsbereich (content) des Eltern-Elements an.

Die durchgezogene Linie zeigt das Kind-Element an.
Ein weiteres Kind-Element.
Noch ein Kind-Element mit mehr Text und somit auch etwas größer als die anderen beiden Kind-Elemente.
Ein letztes Kind-Element.

Weiterer Text im Elternelement.

Hat das Kind-Element einen Innen- bzw. Außenabstand größer als 0 und/oder einen Rahmen, benötigen diese ebenfalls einen Platz. Da aber der Inhaltsbereich vom Eltern-Element gleich bleibt, wird die Breite width des Kind-Elements zusammengedrückt.

Beispiel

Die punktierte Linie zeigt den Inhaltsbereich (content) des Eltern-Elements an.

Die durchgezogene Linie zeigt das Kind-Element an. Dieses hat einen Innenabstand padding: 50px
Die Breite width erkennt man am Text.

Text im Elternelement.

Die durchgezogene Linie zeigt das Kind-Element an. Dieses hat einen Rahmen border: 20px

Weiterer Text im Elternelement.

Die durchgezogene Linie zeigt das Kind-Element an. Dieses hat einen Außenabstand margin: 50px

Weiterer Text im Elternelement.

Die durchgezogene Linie zeigt das Kind-Element an. Dieses hat einen Innenabstand padding: 25px; Rahmen border: 5px und Außenabstand margin: 25px
Die Breite width erkennt man am Text.

Weiterer Text im Elternelement.

 

 

 

 

 

 

 

Die Besonderheit von Außenabständen ist, dass sie negative Werte annehmen können. Wenn z.B. ein positiver linker Außenabstand den Inhalt nach innen drückt, so drückt ein negativer Wert den Inhalt nach außen.

Anmerkung: Rahmen, Innenabstände und auch Breite sowie Höhe können keine negativern Were annehmen.

Beispiel

Die punktierte Linie zeigt den Inhaltsbereich (content) des Eltern-Elements an.

Die durchgezogene Linie zeigt das Kind-Element an. Dieses hat einen linken Außenabstand margin-left: 25px

Text im Elternelement.

Die durchgezogene Linie zeigt das Kind-Element an. Dieses hat einen linken Außenabstand margin-left: 0px

Weiterer Text im Elternelement.

Die durchgezogene Linie zeigt das Kind-Element an. Dieses hat einen linken Außenabstand margin-left: -25px

 

 


left
 
right
Eltern-element
margin border padding width padding border margin (width)
               

Das HTML-Element body

wenn breite nicht angegeben

wenn breit - dann margin-right

textfluss - verschachtelung

Von innen nach außen betrachtet kommt zuerst der Text in einem Rechteck, er ist der Inhalt (content-box). Um dieses Rechteck herum kommt das nächste, um wieviel größer, gibt der Innenabstand (padding) an. Dann kommt der Rahmen, dessen Stärke mit border-width (oder der in Kurzform border) angegeben ist. Das äußerste Rechteck ist wieder größer, um wieviel größer, gibt der Außenabstand (margin) an.

 

Die Gesamtbreite ist daher margin + border-width + padding + Breite der content-box + padding + border-width + margin, die Gesamthöhe ist daher margin + border-width + padding + Höhe der content-box + padding + border-width + margin.

zum Anfang der Seite Hintergrundfarbe und -bilder mit Rahmen

 

Außenabstand bei Rahmen

Außenabstände sind immer durchsichtig (transparent). Dies bedeutet aber auch, dass die Farben und Texte einer dahinter liegenden Elementbox durchscheinen.

Außenabstände beeinflussen nur die Größe, die die Box annimmt. Sie haben aber keinen Einfluss auf die optische Darstellung von Rahmen, auch nicht wenn sie Zwischenräume haben.

zum Anfang der Seite Referenzen in CSS4You

Online-Link: CSS 4 You: Eigenschaften > Rahmen
Online-Link: CSS 4 You: Eigenschaften > Außenabstände
Online-Link: CSS 4 You: Eigenschaften > Innenabstände