Absolute Positionierung bedeutet, dass das Element vollständig aus dem normalen Fluss des Seitenlayouts herausgenommen wird. Für die restlichen Elemente auf der Seite existiert das absolut positionierte Element einfach nicht. Das Element selbst wird dann separat gezeichnet, sozusagen "über allem" an der Position, die Sie mithilfe der left, right, top and bottom
Attribute angeben .
Unter Verwendung der Position, die Sie mit diesen Attributen angeben, wird das Element dann an der Position innerhalb seines letzten Vorfahrenelements platziert, das ein anderes Positionsattribut als static
(Seitenelemente sind standardmäßig statisch, wenn kein Positionsattribut angegeben ist) oder des Dokumentkörpers (Browser) aufweist Ansichtsfenster), wenn kein solcher Vorfahr existiert.
Wenn ich zum Beispiel diesen Code hätte:
<body>
<div style="position:absolute; left: 20px; top: 20px;"></div>
</body>
...das <div>
wäre 20px vom oberen Rand des Browser-Ansichtsfensters und 20px vom linken Rand desselben positioniert.
Wenn ich jedoch so etwas gemacht hätte:
<div id="outer" style="position:relative">
<div id="inner" style="position:absolute; left: 20px; top: 20px;"></div>
</div>
... dann würde das inner
div 20px vom oberen outer
Rand des div und 20px vom linken Rand desselben outer
positioniert sein , da das div nicht mit positioniert ist, position:static
weil wir es explizit für die Verwendung festgelegt haben position:relative
.
Relative Positionierung ist dagegen so, als würde man überhaupt keine Positionierung angeben, aber die left, right, top and bottom
Attribute "schubsen" das Element aus ihrem normalen Layout heraus. Der Rest der Elemente auf der Seite wird immer noch so angeordnet, als ob sich das Element an seiner normalen Stelle befindet.
Wenn ich zum Beispiel diesen Code hätte:
<span>Span1</span>
<span>Span2</span>
<span>Span3</span>
... dann würden alle drei <span>
Elemente ohne Überlappung nebeneinander sitzen.
Wenn ich die zweite Einstellung <span>
für die relative Positionierung wie folgt einstelle :
<span>Span1</span>
<span style="position: relative; left: -5px;">Span2</span>
<span>Span3</span>
... dann würde Span2 die rechte Seite von Span1 um 5px überlappen. Span1 und Span3 würden genau an der gleichen Stelle sitzen wie im ersten Beispiel und einen Abstand von 5 Pixel zwischen der rechten Seite von Span2 und der linken Seite von Span3 lassen.
Hoffe das klärt die Dinge ein bisschen.