Im folgenden Beispiel ist ein Anwendungsfall dargestellt, bei dem die Bildbeschriftung über das Bild geschoben wird, sobald der Benutzer mit der Maus über das Bild fährt.
Die weiter unten stehenden Boxen ändern ihre Position dadurch nicht. Das Verschieben bzw. die neue Positionierung der Beschriftungsbox kann nicht mit Flexboxen umgesetzt werden, da hier nur eine einzelne Box unabhängig von ihren benachbarten Boxen von ihrer Standardposition aus verschoben werden soll.
See the Pen CSS – Positionierung – Relativ1 by Barbara Dörsam, HdM Stuttgart (@bdhdm) on CodePen.
Auch im zweiten Beispiel ist ein Anwendungsfall dargestellt, bei dem die grüne Box unabhängig von den blauen Boxen ihre Position ändert, sobald der Benutzer mit der Maus darüber fährt. Das Beispiel stellt ein Szenario dar, das z.B. in Online-Spielen verwendet wird.
See the Pen CSS – Positionierung – Relativ2 by Barbara Dörsam, HdM Stuttgart (@bdhdm) on CodePen.
Zur Erinnerung: der Browser baut die Boxen nach einem Standardverfahren auf (Boxenpositionierung):
<p>
,
<h1>
, …)
beanspruchen
die
gesamte Fensterbreite und
werden daher untereinander angeordnet. Ihre Höhe ist genau
so groß, dass der gesamte Inhalt in die Box passt.
Wie die obigen Beispiele zeigen, reicht für manche Anwendungsfälle die Positionierung von Boxen mit Flexboxen nicht aus. Dazu gehören jegliche Layouts, bei denen einzelne Boxen unabhängig von ihren benachbarten Boxen von ihrer Standardposition aus verschoben werden sollen. In solchen Fällen spricht man von einer relativen Positionierung einer Box.
Bei der relativen Positionierung wird bei der Positionierung einer Box ein zweistufiges Verfahren angewendet:
Der Browser berechnet die Standard-Positionierung einer Box im Browser (nach den Regeln der oben vorgestellten statischen Positionierung).
Anschließend wird jede Box, welche die Eigenschaft
position:relative
besitzt,
relativ zu ihrer Standardposition
horizontal oder vertikal verschoben. Dabei wird für die
Verschiebung die
Entfernung von der Standard-Randposition
angegeben.
Bei der relativen Positionierung bleibt der Bereich, in dem die Box normalerweise stehen würde, leer. Wird eine Box relativ positioniert, hat es keine Auswirkung auf andere Boxen auf der Seite.
Die relative Positionierung wird mit der CSS-Eigenschaft
position
definiert. Sie muss dafür den Wert relative
haben. Zudem
wird
die
Entfernung der neuen Boxen-Ränder von der Standardposition der Box
angegeben. Dazu
werden meist zwei der folgenden vier Eigenschaften benutzt:
top
: Abstand des oberen Randesright
: Abstand des rechten Randesbottom
: Abstand des unteren Randesleft
: Abstand des linken RandesBetrachten Sie das untere Beispiel. Führen sie nacheinander die folgenden Änderungen durch und beobachten Sie, was sich in der Browser-Ansicht ändert:
img
-Element relativ mit einer Entfernung von
20px von oben und 50px von links.span
-Element relativ mit einer Entfernung von
20px von unten und 150px von rechts.See the Pen CSS – Positionierung – Relativ3 by Barbara Dörsam, HdM Stuttgart (@bdhdm) on CodePen.