Das Box-Modell: HTML-Elemente mit Hilfe des Box-Modells positionieren
In CSS wird das sogenannte Box-Modell verwendet. Das Box-Modell ist ein grundlegendes Prinzip, das notwendig ist, um das Konzept von CSS zu verstehen. Prinzipiell werden in CSS alle Elemente als rechteckige Box behandelt. Jede Box besteht aus dem
- Content-Bereich (Inhalt),
- Innenabstand (Padding),
- Rahmen (Border) und
- Außenabstand (Margin).
Eine schematische Darstellung für das Box-Modell ist in der folgenden Abbildung zu sehen.
Jedes HTML-Element wird als rechteckiger rechteckiger Bereich (Kasten) betrachtet. Padding, Border und Margin bilden die Grundlage für das Layout einer Webseite.
Eine Box hat folgende Eigenschaften:
-
Inhaltsbereich Breite (Content Width),
Inhaltsbereich Höhe (Content Height)Text und sonstiger Inhalt steht im Inhaltsbereich. Die Breite width bzw. Höhe height des Elements bezieht sich immer auf den Inhaltsbereich, nicht auf die gesamte Breite bzw. Höhe des Elements.
Die gesamte Breite für das Element ist:
-
linker Außenabstand (margin-left)
+ linker Rahmen (border-left)
+ linker Innenabstand (padding-left)
+ Inhaltsbereich
+ rechter Innenabstand (padding-right)
+ rechter Rahmen (border-right)
+ rechter Außenabstand (margin-right)
= Gesamtbreite der Box
Die gesamte Höhe für das Element ist:
-
oberer Außenabstand (margin-top)
+ oberer Rahmen (border-top)
+ oberer Innenabstand (padding-top)
+ Inhaltsbereich
+ unterer Innenabstand (padding-bottom)
+ unterer Rahmen (border-bottom)
+ unterer Außenabstand (margin-bottom)
= Gesamthöhe der Box
-
-
Innenabstand (Padding)
Einfach ausgedrückt wird mit padding der Innenabstand vom Inhaltsbereich (Englisch: Content-Area) eines Elements zu seinem Rahmen definiert. Der Padding-Bereich hat immer den gleichen Hintergrund wie der Inhaltsbereich. Um die Innenabstände zu definieren, kann man für Padding 1, 2, 3 oder 4 Werte angeben. Die Eigenschaft padding ist die Kurzschreibweise für folgende vier Eigenschaften, mit denen man den Innenabstand für die entsprechende Seite individuell definieren kann:- padding-top (Innenabstand oben)
- padding-right (Innenabstand rechts)
- padding-bottom (Innenabstand unten)
- padding-left (Innenabstand links)
-
Rahmen (Border)
Mit der Eigenschaft border wird der Rahmen für alle 4 Seiten gleich definiert. Mit den folgenden vier Eigenschaften kann der Rahmen für jede Seite separat definiert werden:- border-top (Rahmen oben)
- border-right (Rahmen rechts)
- border-bottom (Rahmen unten)
- border-left (Rahmen links)
-
Außenabstand (Margin)
Mit der Eigenschaft margin wird der Abstand eines Elements zu seinen direkten Nachbar-Elementen festgelegt. Margin definiert den Abstand, den benachbarte Elemente haben. Die Eigenschaft margin ist die Kurzschreibweise für folgene vier Eigenschaften, mit denen man den Außenabstand für jede Seite individuell festgelegt werden kann.- margin-top (Außenabstand oben)
- margin-right (Außenabstand rechts)
- margin-bottom (Außenabstand unten)
- margin-left (Außenabstand links)
Worauf sich die Abstände zu den Seiten beziehen, hängt von der Art der Positionierung (Position) ab.
Content-Box
Text, Bilder und sonstige Inhalte stehen im Inhaltsbereich. Die Content-Box definiert den Inhaltsbereich, d.h. sie bezeichnet das jeweilige HTML-Element. Die Größe des Inhaltsbereichs kann durch die Eigenschaften width (Deutsch: Breite) und height (Deutsch: Höhe) festgelegt werden. Wenn der Wert für die Eigenschaft width nicht angegeben wird, dann werden
-
Block-Elemente so breit wie das übergeordnete Element, d.h. so breit wie das Eltern-Element.
-
Inline-Elemente nur so breit wie ihr Inhalt.
Ohne die Angabe von height werden alle Elemente nur so hoch wie ihr Inhalt.
Typische Eigenschaften für die Content-Box sind:
-
Background für die Hintergrund-Farbe
-
und für die Schriftfarbe Color.
Padding-Box
Der Innenabstand (Englisch: Padding) eines HTML-Elements ist der Abstand eines HTML-Elements zu seinem Rahmen. Die Padding-Box gehört zur Content-Box. Deshalb werden die Werte für Padding zur Breite und Höhe des Inhaltsbereichs addiert. Da die Padding-Box zur Content-Box gehört, hat sie immer die gleiche Hintergrundfarbe wie der Inhaltsbereich. Der Innenabstand (Padding) kann für alle vier Seiten gleich sein oder für jede Seite individuell festgelegt werden. Für die Eigenschaft Padding können 1 bis 4 Werte angegeben werden.
Negative Werte für Padding sind nicht erlaubt.
Border-Box
HTML Elemente haben immer einen Rahmen (Englisch: Border). Selbst ein nicht sichtbarer Rahmen (border-width: 0) gehört zum Element. Die Border-Box begrenzt die Content-Box. Das bedeutet, sie umschließt die Padding-Box und den Rahmen des Elements.
Die Border-Box hat keinen Hintergrund.
Genau wie bei Padding sind auch für Border negative Werte nicht gestattet.
Margin-Box
Der Außenabstand (Englisch: Margin) ist ein erzwungener Leerraum (auch Weißraum genannt) zwischen einem Element und seinem Elternelement und seinen direkten Nachbarelementen. Die Margin-Box ist der Bereich zwischen dem Element-Rahmen und den angrenzenden Elementen. Margin ist sozusagen ein unsichtbarer Raum um den Rahmen, der andere Elemente vom Rahmen weg schiebt.
Negative Werte für Margin sind zulässig. Ein negativer Wert für Margin kann aber dazu führen, dass sich Elemente überlappen.
Im Gegensatz zu Padding hat Margin keine Auswirkung auf die Breite und Höhe des Elements. Der gesamte Platzbedarf für das Element ist die Content-Box zuzüglich Rahmen und Margin.
Der Außenabstand Margin kann für alle vier Seiten gleich sein oder für jede Seite individuell festgelegt werden. Für die Eigenschaft Margin können 1, 2, 3 oder 4 Werte angegeben werden.
Beachte:-
Das Eltern-Element und angrenzende Nachbar-Elemente können auch selbst ein Margin haben.
-
Margin-Bereiche sind immer transparent und können deshalb nicht gestaltet werden. D.h., für Margin-Bereiche wird immer die Hintergrundfarbe des übergeordneten Elements angezeigt.
/* Bereiche definieren */
div.box1
{
/* Außenabstand alle Seiten */
margin
: 0.5em
;
/* Innenabstand alle Seiten */
padding
: 0.3em
;
/* Breite: 30% */
width
: 30%
;
/* Hintergrund: antiqueWhite */
background
: #faebd7
;
/* Rahmen Container box1 */
border
: 0.125em
double
#000000
;
/* Container enclose neben box1 */
float
: left
;
}
div.box2
{
/* Innenabstand alle Seiten */
padding
: 0.5em
;
/* Breite 100% von enclose */
width
: 100%
;
/* Hintergrund: lightRed */
background
: #ff7276
;
/* Rahmen Container box2 */
border
: 0.125em
dotted
#ffffff
;
}
div.enclose
{
/* Außenabstand vertikal, horizontal */
margin
: 0.5em 0.5em
;
/* Breite: 60% */
width
: 60%
;
/* Hintergrund: marineBlue */
background
: #bbe8bb
;
/* Rahmen Container »enclose« */
border
: 0.5em
double
#888888
;
/* Container »enclose« neben box1 */
float
: left
;
}
/* Absatz in box1 */
div.box1 p
{
/* Innenabstand alle Seiten */
padding
: 0.5em
;
/* Hintergrund Absatz in box1 */
background
: #dfdfbc
;
/* Schriftfarbe Absatz in box1 */
color
: #404040
;
/* Rahmen Absatz in box1 */
border
: 0.125em
solid
#dd0000
;
}
/* Absatz in box2 */
div.box2 p
{
/* Innenabstand alle Seiten */
padding
: 0.5em
;
/* Hintergrund Absatz in box2 */
background
: #bbe8bb
;
/* Schriftfarbe Absatz in box2 */
color
: #000000
;
}
<div class=
"box1"
>
<p>Im Gegensatz zu früheren Webseiten müssen wir zum Beispiel nicht mehr zwei verschiedene Webseiten für den Internet Explorer und einen anderen Browser programmieren. Es reicht eine Seite, die für alle Browser geeignet ist.
</p>
</div>
<div class=
"enclose"
>
<div class=
"box2"
>
<p>Gerade jetzt, wo er das Ding seines Lebens gedreht hatte und mit der Beute verschwinden wollte, hatte einer seiner zahllosen Komplizen dieselbe Idee.
</p>
<p>Wer würde ihm schon spät in der Nacht folgen. Er versuchte, sich in der Dunkelheit seinen Weg zu ertasten und erstarrte als er eine dunkle Gestalt im dichten Nebel erblickte. War jetzt wirklich alles vorbei?
</p>
</div>
</div>
Im Gegensatz zu früheren Webseiten müssen wir zum Beispiel nicht mehr zwei verschiedene Webseiten für den Internet Explorer und einen anderen Browser programmieren. Es reicht eine Seite, die für alle Browser geeignet ist.
Gerade jetzt, wo er das Ding seines Lebens gedreht hatte und mit der Beute verschwinden wollte, hatte einer seiner zahllosen Komplizen dieselbe Idee.
Wer würde ihm schon spät in der Nacht folgen. Er versuchte, sich in der Dunkelheit seinen Weg zu ertasten und erstarrte als er eine dunkle Gestalt im dichten Nebel erblickte. War jetzt wirklich alles vorbei?
Dieser Hintergrund repräsentiert das Ausgabe-Display und gehört nicht zum Beispiel-Code.