HTML-Dokumente sind hierarchisch aufgebaut: das body-Element
steht in der Hierarchie ganz oben und bildet die Wurzel
des HTML-Baumes. Alle Elemente, die direkt im body-Element
stehen, bilden die nächste Ebene des Baumes usw. In Anlehnung an einen
Familienstammbaum werden für die Beziehungen zwischen den Elementen auch
entsprechende Begriffe benutzt.
See the Pen CSS – Vererbung - Hierarchie by Barbara Dörsam, HdM Stuttgart (@bdhdm) on CodePen.
Im Beispiel sind Nachfahren, Eltern und Kinder dargestellt:
body-Element
enthalten
sind (h1,
h2, p, strong und
em) sind
Nachfahren des body-Elementes.
p ist ein Elternteil (parent)
der
Elemente
strong und em.
strong und em werden als Kinder
(children)
des Elementes p bezeichnet.
Eltern vererben in CSS viele ihrer Eigenschaften automatisch auf die Kinder:
Zum Beispiel werden viele Textformatierungseigenschaften
(Schriftart: font-familiy, Textgröße: font-size,
Zeilenabstand: line-height, …) oder die Schriftfarbe
(color) von den Eltern auf ihre Kinder vererbt.
Im unteren Beispiel wird die Schriftfarbe des Elementes p auf
seine
Kinder (Elemente strong und em) vererbt.
See the Pen CSS – Vererbung – Farbe by Barbara Dörsam, HdM Stuttgart (@bdhdm) on CodePen.
Eigenschaften, bei denen die Vererbung keinen Sinn macht, werden nicht
vererbt.
Dazu
gehören beispielsweise alle Boxeneigenschaften (margin,
padding, border). Im Beispiel ist zu sehen, dass
die
Eigenschaft border vom p-Element nicht auf dessen
Kinder
strong und em vererbt wird.
See the Pen CSS – Vererbung – Border by Barbara Dörsam, HdM Stuttgart (@bdhdm) on CodePen.
Vererbung wird vor allem benutzt, um das CSS schlank zu halten und spätere
Änderungen
einfacher durchführen zu können. Beispiel: die Angaben für die Überschriften
(h1, h2) und
Absätze (p) sind im folgenden Beispiel überflüssig. Wenn Sie
diese aus
dem CSS entfernen, ändert sich nichts an der Darstellung.
See the Pen CSS – Vererbung – Überflüssig by Barbara Dörsam, HdM Stuttgart (@bdhdm) on CodePen.
Kinder können auch Eigenschaften ihrer Eltern überschreiben. Das ist immer
dann
der
Fall, wenn ein Kindelement eine eigene Regel für eine Eigenschaft definiert.
Im folgenden Beispiel überschreibt das em-Element die Schriftfarbe, die
vom p-Element vererbt wird.
Wenn Sie die CSS-Regeln für das em-Element entfernen, wird seien
Schrift in Blau dargestellt.
See the Pen CSS – Vererbung – Überschreiben by Barbara Dörsam, HdM Stuttgart (@bdhdm) on CodePen.