Willli: Vererbung von Klassen

Beitrag lesen

Ich definiere im body-tag die Klasse mittels class="gruen", class="rot" oder class="blau" - es gibt also nur diese 3 Farben.

Du scheinst da gerade auf dem falschen Dampfer unterwegs zu sein. CSS-Klassen haben nichts mit den Klassen zu tun, die du vermutlich von objektorientierter Programmierung kennst. Dementsprechend ist der Gedanke an das Konzept Vererbung hier fehl am Platze.

CSS-Klassen erben oder vererben nichts, eine CSS-Klasse ist eine statische Gruppe von CSS-Eigenschaften.

Mit dem class-Attribut HTML-seitig definierst im eigentlichen Sinne auch nichts, du gibst nur an, welche CSS-Klasse (oder -Klassen) für _dieses_ Element gelten soll, mithin, welche CSS-Eigenschaften für dieses Element gelten. Auch dort: Keine Vererbung, nur eine Zuweisung der CSS-Eigenschaften aller genannten CSS-Klassen.

Jetzt würde ich gerne einige Elemente der Webseite in der entsprechenden Farbe einfärben - und meinem Verständnis nach sollte
h1.gruen {
background-color:green;
}

nun auch funktionieren - da der Body ja schon die klasse hat. Leider wird das scheinbar nicht vererbt.

Es wird nichts vererbt, du kannst lediglich den Klassennamen in dem Pfad angeben, der den CSS-Selektor bildet:

Kann man das sauber in CSS lösen?

Soll ein H1-Element in einem anderen Element, dass die Klasse .gruen hat, einen grünen Hintergrund bekommen? Dann der schon vorgeschlagene Pfad ".gruen h1" (alle h1 innerhalb von .gruen-Elementen), ".gruen > h1" (nur direkte Kinder von .gruen-Elementen) und dergleichen.