# Absolute & Relative
Wie du bereits in vorherigen Kapiteln gesehen hast, stehen viele Dinge in einer Beziehung (Relation) oder Abhängigkeit zueinander. Ein fundamentales Konzept im Webdevelopment ist daher die Unterscheidung zwischen Dingen, die relativ zueinander oder absolut zum root
(höchste Hierarchiestufe) stehen.
Analogie/Beispiel
Ein üblicher Aufbau einer Familie sieht folgendermassen aus:
Urgrosseltern
Grosseltern
Eltern
Und hier bist DU
Du stehst also, metaphorisch gesehen, ganz unten in der Hierarchie. Möchtest du nun eine Frage an deine Urgrosseltern richten, gibt es zwei Möglichkeiten:
Alle in der Hierarchie verhalten sich
relativ
zueinander. Du richtest deine Frage an deine Eltern, haben diese keine Antwort auf die Frage, stellen sie diese deinen Grosseltern. Haben diese wieder keine Antwort auf die Frage, werden deine Urgrosseltern gefragt. Haben auch deine Urgrosseltern keine Antwort, gehst du leer aus, da es in unserem Beispiel keine höhere Hierarchiestufe gibt, die gefragt werden könnte. Du hast also denroot
(den Ursprung, die Wurzel) erreicht.Du verhältst dich
absolut
und überspringst damit die Hierarchiestufen. Du stellst deine Frage also direkt deinen Urgrosseltern – es sei denn, jemand in der Hierarchie zwingt dich, dass du dichrelativ
zu verhalten hast. Falls das niemand tut, richtet sich deine Frage immer an die höchste Hierarchiestufe, in unserem Beispiel also deine Urgrosseltern bzw. an denroot
.
In Bezug auf HTML entstehen solche Hierarchien durch das Nesting (Verschachtelung) der Elemente (DOM-Nodes) ineinander. Also einem übergeordneten parent
-Element und einem untergeordneten child
-Element.
Jedes dieser Elemente kann mit Inhalten, Einstellungen und weiteren child
-Elementen versehen werden. In Bezug auf das Beispiel wäre also unser html
-Element deine Urgrosseltern, header
, main
und footer
die Grosseltern und so weiter.
In CSS können untergeordneten childs
von ihren parents
Werte und Einstellungen erben. Ähnlich wie im echten Leben. Inheritance (Vererbung) nennt sich dieses Konzept.
So kann ein child
beispielsweise die Dimensionen (Breite, Höhe) und Positionen, die Schriftart, die Farbe und viele weitere Dinge erben. In Bezug auf unser Beispiel bedeutet das also, das ein child
“seine Frage” immer an die nächst höhere Hierarchiestufe parent
stellt, bis es eine Antwort erhält, mit der es etwas anfangen kann bzw. bis es Werte erhält, die es erben kann.
# CSS Position
Jede Box, also jedes Element, das Höhe, Breite und Abstände haben kann, verhält sich grundsätzlich relativ. Es achtet darauf, welche Hierarchien und andere Elemente vorhanden sind und richtet sich danach aus.
In CSS kannst du eine Box aber auch absolut positionieren. Dabei wird sie aus ihrem Kontext herausgelöst und neu positioniert. Wenn dies keine andere Hierarchiestufe verbietet (siehe Beispiel oben), richtet sie sich am root
-Element aus. Das ist grundsätzlich immer das html
Tag.
Im Kapitel Position & Transform werden wir noch weiter auf die Positionierung von Elementen mit CSS eingehen.
# Pfade
Dateipfade für Ordnerstrukturen können ebenfalls absolut oder relativ definiert werden. Ein absoluter Pfad umfasst meist den kompletten Pfad vom root
Verzeichnis bis zur tiefsten gewünschten Hierarchiestufe.
Ein absoluter Pfad ist also unveränderlich.
# Absolut
/* Beispiel für einen absoluten Pfad einer Website */
https://google.com
/* Ein Beispiel für einen absoluten Pfad auf einem Windows Computer */
C:\Documents\Jane\Portfolio\index.html
Angenommen, du würdest sämtliche Bilder und Dateien deines Portfolios mit absoluten Pfaden wie im Beispiel (C:\Documents\Kilian\Portfolio\index.html
) aufbauen. Dies hätte zur Folge, dass dein Portfolio ausschliesslich auf deinem eigenen Gerät funktionieren würde, weil diese Ordner auch nur auf deinem eigenen Gerät vorhanden sind. Kopierst du dieses auf das Gerät eines Kollegen oder auf einen Webserver, so können anderen Geräte diesen Pfad nicht finden.
Deshalb empfiehlt es sich mit relativen Pfaden zu arbeiten. Ein relativer Pfad achtet nur auf die Hierarchiestufen in seiner unmittelbaren Umgebung. Dadurch kann sich alles Übergeordnete bis hin zum root
verändern, ohne die Funktionsweise zu zerstören.
# Relativ
/* Beispiel für einen relativen Pfad der sich immer an der Position der index.html orientiert. */
/img/about.jpg
/* Beispiel für einen relativen Pfad der sich am selben Verzeichnis orientiert, wo er sich befindet. */
img/about.jpg
/* Beispiel für einen relativen Pfad der sich am übergeordneten Verzeichnis orientiert, wo er sich befindet. */
../img/about.jpg
/* Beispiel für einen relativen Pfad der sich zwei Hierarchiestufen (zwei Verzeichnisse) höher orientiert, wo er sich befindet. */
../../img/about.jpg
# Masseinheiten
Auch Masseinheiten in CSS arbeiten mit dem Absolute & Relative Konzept. So können beispielsweise mit px
(CSS Pixel) oder pt
(Punkt) absolute Werte verwendet werden, um Grössen festzulegen. Oder aber relative Masseinheiten wie %
(Prozent) oder solche, die sich an der Bildschirm- oder Schriftgrösse orientieren.
Im folgenden Kapitel werden wir noch detaillierter auf die verschiedenen Masseinheiten eingehen.