Größenangaben und Abstände in CSS

Auf Websites werden werden Block- und Inline-Elemente eingesetzt, die mit verschiedenen Größenangaben oder Abständen versehen werden können. In der Standardeinstellung verhalten sich die beiden Elementtypen unterschiedlich, die auf der folgenden Seite näher beschrieben werden.

Block-Elemente nehmen standardmäßig in Form eines Rechtecks die gesamte verfügbare Breite ein, wenn kein Maß angegeben wurde. Die Höhe richtet sich nach dem Inhalt und vergrößert sich, wenn mehr Inhalte wie z.B. Text und Bilder eingefügt werden. Wenn einem Block-Element über CSS Größenangaben zugewiesen werden, passt sich die Box soweit an, dass es den angegebenen Maßen entspricht. Hierbei werden die folgenden CSS-Eigenschaften verwendet.

Inline-Elementen können diese Größenangaben nur zugewiesen werden, wenn es sich um Elemente handelt, die replaced sind. Damit sind Elemente gemeint, die ihren Ursprung außerhalb der Website haben. Das ist z.B. bei Bildern die Fall, die separat bereitliegen. Den Inline-Elementen, die non-replaced sind, können diese Größenangaben nicht zugewiesen werden. Dabei handelt es sich um Elemente, die direkt im Quellcode der Website platziert sind. Um bei Inline-Elementen den Platz zu beeinflussen, der in der Höhe eingenommen wird, kann man die folgende Eigenschaft verwenden.

In Verbindung mit den Größenangaben sind außerdem die folgenden Themen wichtig.

  • padding (Innenabstand)
  • border (Rahmen)
  • margin (Außenabstand)
  • collapsing margin (Zusammenfallende Außenabstände)
  • overflow (Behandlung bei übergroßen Inhalten)
  • float (Umfließen eines Elements)

Eigenschaft width

Weist man dem Element nur eine Breite zu, gilt die Breite standardmäßig für den Bereich, der für die Inhalte gedacht ist und content-box genannt wird. Es beinhaltet nicht die Maße für sonstige Abstände oder Rahmen. Die Höhe ist initial 0 Pixel hoch und wird durch den Inhalt vergrößert. Fügt man innerhalb des Elements einen Text ein und ist er insgesamt breiter als die Box, erfolgen automatisch Zeilenumbrüche bei den Leerzeichen und die Höhe der Box wird weiter vergrößert.

CSS-Eigenschaft width

Fügt man übergroße Inhalte ein, die nicht umgebrochen werden, z.B. lange Wörter ohne Leerzeichen oder Bilder, dann ragen sie über die Box hinaus und können dadurch andere Elemente überlagern.

Übergroße Inhalte breiter als die Box

Eigenschaft min-width

Es gibt eine Möglichkeit, die Breite einer Box flexibel zu gestalten. Dabei wird der Box über die Eigenschaft min-width eine Mindestbreite vorgegeben. Damit wird verhindert, dass eine Mindestbreite unterschritten wird bzw. es wird dafür gesorgt, dass bei übergroßen Inhalten die Box automatisch verbreitert wird. Das genaue Verhalten hängt davon ab, ob neben der Eigenschaft min-width auch das Umfließen von Elementen mit float festgelegt wurde oder nicht.

CSS-Eigenschaft min-width

Eigenschaft max-width

Man kann einem Element über die Eigenschaft max-width eine Maximalbreite zuweisen. In dem Fall wird verhindert, dass die Box eine gewisse Breite überschreitet. Sind übergroße Inhalte vorhanden, ragen sie aus der Box hinaus. Die initiale Breite einer Box, der eine Maximalbreite zugewiesen wurde, ist entweder 0px breit und wird durch den Inhalt verbreitert oder die initiale Breite ist der Wert, der für die Eigenschaft max-width angegeben wurde. Auch hierbei ist das genaue Verhalten davon abhängig, ob mit float das Umfließen von Elementen zugelassen wurde oder nicht.

CSS-Eigenschaft max-width

Eigenschaft height

Wird dem Element zusätzlich über die Eigenschaft height eine Höhe zugewiesen, gilt initial für die Höhe der angegebene Wert. Wenn übergroße Inhalte eingefügt werden, vergrößert sich die Box nicht. In der Standardeinstellung ragen die Inhalte aus der Box heraus und können dadurch andere Elemente überlagern.

CSS-Eigenschaft height

Eigenschaft min-height

Auch die Höhe kann mit einer Mindesthöhe flexibel gestaltet werden. Hierfür verwendet man die Eigenschaft min-height. Werden Inhalte größer als die Box eingefügt, vergrößert sich die Höhe automatisch.

CSS-Eigenschaft min-height

Eigenschaft max-height

Über die Eigenschaft max-height wird einem Element eine maximale Höhe zugewiesen werden. Initial ist die Box dabei 0px hoch und wird durch den Inhalt vergrößert. Jedoch nur bis zu der maximalen Höhe. Darüber hinaus vorhandene Inhalte ragen aus der Box heraus und können dadurch andere Elemente überlagern.

CSS-Eigenschaft max-height

Eigenschaft line-height

Bei Inline-Elementen, die non-replaced sind, haben die Eigenschaften width, height etc. keine Auswirkung. Man kann den Elementen jedoch über die Eigenschaft line-height eine Zeilenhöhe zuweisen und dafür sorgen, dass bei Inline-Elementen ober- und unterhalb ein gewisser Abstand entsteht, sodass die Abstände zwischen den Zeilen größer als gewöhnlich ausfallen.

CSS-Eigenschaft line-height

Eigenschaft padding

Einem Element kann über die Eigenschaft padding ein Innenabstand zugewiesen werden. Dadurch sorgt man für einen gewissen Abstand zwischen dem Inhaltsbereich (content-box) und dem Rahmen.

CSS-Eigenschaft padding

Eigenschaft border

Über die Eigenschaft border kann man einer Box einen Rahmen zuweisen. Der Rahmen nimmt den Platz außerhalb von padding ein. Beide Eigenschaften vergrößern standardmäßig die Box. Näheres dazu ist unter Box-Modell beschrieben.

CSS-Eigenschaft border

Eigenschaft margin

Den Elementen kann man mit der Eigenschaft margin einen zusätzlichen äußeren Abstand zuweisen. Der Effekt ist auf den nachfolgenden Bildern abgebildet. Wurde den Elementen kein margin zugewiesen, nehmen die Boxen ihren Platz wie folgt ein.

Elemente ohne margin

Weist man den Elementen mit margin einen Außenabstand zu, ist der Effekt wie nachfolgend abgebildet.

Elemente mit margin

Zusammenfallende Außenabstände (collapsing margin)

Mit margin legt man die Abstände zu benachbarten Elementen fest. Wenn jedoch mehrere Elemente untereinander angeordnet sind, können diese in bestimmten Fällen einen gemeinsamen Außenabstand bilden, was collapsing margin genannt wird. Das bedeutet, die Außenabstände zwischen dem oberen und unteren Element werden nicht addiert, sondern zusammengeführt. Dabei gilt bei unterschiedlichen margins das größere Maß.

Beispiel für collapsing margin:

Wenn einem Element ein margin von 50px zugewiesen wurde und dem benachbarten Element 25px, dann gilt im Falle von collapsing margin ein Außenabstand von 50px zwischen den beiden Elementen.

Beispiel, wenn collapsing margin nicht zur Anwendung kommt:

Kommt collapsing margin nicht zur Anwendung, werden die beiden Außenabstände zusammengezählt. In dem Beispiel würden sich die beiden Abstände addieren und somit 75px sein.

Verhalten benachbarter margins

Zusammenfallende Abstände kann man nicht über CSS-Regeln gezielt herbeiführen. Vielmehr ergeben sie sich aus der Situation heraus. Horizontale Abstände bei Elementen, die links und rechts angeordnet sind, werden nicht zusammengeführt. Vertikale Abstände zwischen Elementen, die oben und unten angeordnet sind, können in bestimmten Fällen zusammengeführt werden.

Eigenschaft overflow

Hat man einer Box eine Breite und Höhe zugewiesen und ist der Inhalt größer als die Box, ragen sie in der Standardeinstellung aus der Box heraus. Das Verhalten kann über die Eigenschaft overflow beeinflusst werden. Beispielsweise kann man festlegen, dass der herausragende Teil abgeschnitten bzw. nicht angezeigt wird. Es können auch automatisch Scrollleisten eingeblendet werden.

CSS-Eigenschaft overflow

Eigenschaft float

Wenn man Block-Elemente nebeneinander positionieren möchte, dann reicht es nicht aus, für ein Element eine Breite anzugeben, damit das nächste Element rechts (oder links) daneben positioniert werden. Um das Umfließen mit anderen Elementen zu ermöglichen, benötigt man die Eigenschaft float. Mit float: left; wird das Element linksseitig positioniert, sodass es auf der rechten Seite von anderen Elementen umflossen werden kann. Mit float: right; wird das Element rechtsseitig positioniert und kann auf der linken Seite von anderen Elementen umflossen werden.

CSS-Eigenschaft float

Das Umfließen kann mit der Eigenschaft clear beendet werden.