Positionierung
Positionierung (position)
Die letzten beiden Teile dieses Tutorials beschäftigen sich mit der Positionierung von Elementen.
Nach dem Sie bisher die Möglichkeiten zur Veränderung des Aussehens, der Art und Ausrichtung von Element-Boxen kennen gelernt haben, geht es jetzt darum, wo diese Boxen auf der Webseite auftauchen. Bei der dieser Positionierung spielt der folgende Befehl eine zentrale Rolle.
| position | |
|---|---|
| Werte | static | relative | absolute | fixed | inherit |
| Standardwert | static |
| Vererbung | nein |
| Anwendbar auf | alle Elemente |
Die obigen fünf Werte bedeuten dabei folgendes:
static
Die Element-Boxen werden wie gewohnt als Rechteck dargestellt.
relative
Die Element-Box wird innerhalb der Webseite um einen bestimmten Wert in eine Richtung verschoben. In der Webseite wird dann weiterhin der Platz, den die Element-Box benötigt reserviert und der andere Inhalt wird entsprechend verschoben. Um welchen Wert bzw. in welche Richtung die Box verschoben wird, legen die vier untenstehenden Befehle top, right, bottom und left fest.
absolute
Wird einer Element-Box mit Hilfe des Befehls position der Wert absolute zugewiesen, so wird innerhalb der Webseite kein Platz mehr für diese Box reserviert. Die Box liegt dann über den anderen Inhalten der Webseite. Zusätzlich zu den Angaben für top, right, bottom und left kann noch eine Angabe zur Breite (width) und Höhe (height) gemacht werden.
fixed
Bei der Angabe fixed wird die Box genauso wie beim Wert absolute dargestellt mit dem Unterschied, dass sie auch beim Scrollen ihre Position nicht verändert.
inherit
Bei diesem Wert erbt die Box die Eigenschaften der Elternbox.
Ausrichtung
Bei den Werten relative, absolute und fixed können Sie mit den folgenden Befehlen die Element-Box innerhalb des Dokumentes verschieben.
| top, right, bottom, left | |
|---|---|
| Werte | <Längenangabe> | <Prozentwert> | static-position | auto | inherit |
| Standardwert | auto |
| Vererbung | nein |
| Anwendbar auf | alle Elemente für die der Befehl position (ausgenommen static) angewandt wurde |
Prozentangaben beziehen sich bei right und left auf die Breite, bei top und bottom auf die Höhe des Elternelementes.
Die Angaben dürfen sowohl positiv als auch negativ sein, wobei Sie aufpassen müssen, dass Sie die Box oder Teile davon, nicht aus dem sichtbaren Bereich verschieben.
Der Wert static-position belässt das Element an derselben Stelle, an der auch das übergeordnete Element ist.
Breite und Höhe
Sie können die Breite und die Höhe der Element-Box mit den beiden folgenden Befehlen festlegen:
| width | |
|---|---|
| Werte | <Längenangabe> | <Prozentwert> | auto |
| Standardwert | auto |
| Vererbung | nein |
| Anwendbar auf | Block-level Elemente |
| height | |
|---|---|
| Werte | <Längenangabe> | auto |
| Standardwert | auto |
| Vererbung | nein |
| Anwendbar auf | Block-level Elemente |
Da Sie oftmals vorher nicht wissen wie groß eine Box wird, da dieser Wert von verschiedenen Faktoren (z.B. Schriftart, -größe oder auch enthaltenen Bildern) abhängt, können Sie mit den nachstehenden Befehlen Mindest- bzw. Maximalgrößen für die Höhe und Breite festlegen.
| min-width | |
|---|---|
| Werte | <Längenangabe> | <Prozentwert> | inherit |
| Standardwert | je nach Browser |
| Vererbung | nein |
| Anwendbar auf | alle Elemente außer Inline- und Tabellen-Elemente |
| max-width | |
|---|---|
| Werte | <Längenangabe> | <Prozentwert> | none | inherit |
| Standardwert | je nach Browser |
| Vererbung | nein |
| Anwendbar auf | alle Elemente außer Inline- und Tabellen-Elemente |
| min-height | |
|---|---|
| Werte | <Längenangabe> | <Prozentwert> | inherit |
| Standardwert | je nach Browser |
| Vererbung | nein |
| Anwendbar auf | alle Elemente außer Inline- und Tabellen-Elemente |
| max-height | |
|---|---|
| Werte | <Längenangabe> | <Prozentwert> | none | inherit |
| Standardwert | je nach Browser |
| Vererbung | nein |
| Anwendbar auf | alle Elemente außer Inline- und Tabellen-Elemente |
Bei der Festlegung von Größen für Elementboxen besteht immer die Gefahr, dass der Inhalt größer als die Box selbst ist. CSS bietet an dieser Stelle einige Befehle, um das Verhalten bei einem sog. “Overflow” zu steuern.
Leider funktionieren die folgenden Befehle zum Overflow mit praktisch keinem Browser korrekt.
Overflow
Passt aus irgendeinem Grund der Inhalt nicht mehr in die für ihn bestimmte Elementbox, verwenden Sie den folgenden Befehl, um zu entscheiden, was mit dem überhängenden Inhalt geschehen soll.
| overflow | |
|---|---|
| Werte | visible | hidden | scroll | auto | inherit |
| Standardwert | visible |
| Vererbung | nein |
| Anwendbar auf | Block-level Elemente |
Der Wert visible führt dazu, dass der zusätzliche Inhalt außerhalb seiner Elementbox dargestellt wird. Dies kann natürlich dazu führen, dass andere Elementboxen und deren Inhalt beeinflusst werden.
Bei hidden wird der zusätzliche Inhalt einfach “verschluckt” und ist für den Betrachter nicht mehr zu erreichen.
Bei der Angabe von scroll fügt der Browser der Elementbox einen Scrollbalken hinzu, wodurch die Größe der Box nicht beeinflusst wird, der Besucher aber dennoch die Möglichkeit hat, an den zusätzlichen Inhalt zu gelangen.
Auto führt dazu, dass der Browser selbst entscheidet, welches Overflow-Verhalten an der Stelle an sinnvollsten ist.
Overflow-clip
Mit dem Befehl overflow-clip können Sie selbst einen Bereich um die Elementbox festlegen, in dem sich zusätzlicher Inhalt der Elementbox befinden darf.
| overflow-clip | |
|---|---|
| Werte | rect(<top>, <right>, <bottom>, <left>) | auto | inherit |
| Standardwert | auto |
| Vererbung | nein |
| Anwendbar auf | Block-level Elemente für die der overflow-Befehl angewandt wurde |
Der Wert auto steht dabei für die Größe der Elementbox. Die Clipping-Region ist demnach genauso groß wie die Elementbox.
Mit der Definition eines Rechteckes erreichen Sie bei der Angabe von positiven Werten eine Verkleinerung der Clipping-Region, bei negativen Werten eine Vergrößerung in die betreffende Richtung.
Clip
| clip | |
|---|---|
| Werte | rect(<top>, <right>, <bottom>, <left>) | auto | inherit |
| Standardwert | auto |
| Vererbung | nein |
| Anwendbar auf | Block-level Elemente |
Der obige Befehl sieht auf den ersten Blick aus wie der overflow-clip, bedeutet aber dennoch etwas anderes.
Mit Hilfe dieses Befehls kann man durch positive Werte für das Rechteck, den Bereich einer Elementbox einschränken. Dabei bezieht sich das Clipping-Rechteck auf das gesamte Element an sich. So können Sie z.B. Bereiche eines Absatzes mit
<P style="clip:rect(20px, auto, auto, auto);">
einfach abschneiden. Alles was von oben gesehen in den ersten 20 Pixeln steht, wird für den Betrachter unsichtbar.
Sichtbarkeit des Elements (visibility)
| visibility | |
|---|---|
| Werte | visible | hidden | collapse | inherit |
| Standardwert | inherit |
| Vererbung | nein |
| Anwendbar auf | alle Elemente |
Wie der Name des Befehls schon erahnen lässt, können Sie bestimmte Elemente bewusst anzeigen bzw. verbergen lassen. Definieren Sie ein Element als unsichtbar (mit visibility: hidden), wird dennoch im Dokument Platz für den verborgenen Bereich reserviert.
Die dritte Dimension (z-index)
Nachdem Sie verschiedene Elementboxen auf einer Webseite positioniert haben, kommt es vor, dass sich verschiedene Boxen überlappen. Dabei stellt sich die Frage, welche Box welche überlappt.
Mit dem folgenden Befehl lässt sich eine dritte Dimension in die Webseite einführen. Sie geben an, in welcher Reihenfolge sich die Elemente überlagern.
| z-index | |
|---|---|
| Werte | integer | auto |
| Standardwert | auto |
| Vererbung | nein |
| Anwendbar auf | alle Elemente, die positioniert sind |
Auto belässt die Entscheidung der Reihenfolge der Überlagerung beim Browser. Geben Sie jedoch ganze Zahlen an, werden Elemente mit einer niedrigen Zahl weiter in den Hintergrund gerückt und der höchste Wert liegt ganz oben. Dabei können Sie auch negative Zahlen benutzen.