Verständnisproblem bei CSS-Vererbung
Thortrance
- css
0 bob0 Cheatah0 Thortrance0 MudGuard
Hallo,
ich verstehen diesen Code nicht so richtig:
<html>
<head>
<style>
div { color:red; }
</style>
</head>
<body>
<div style="color:blue;">
Hallo
<div>
Welt
</div>
</div>
</body>
</html>
Warum wird das "Welt" nicht blau angezeigt? Warum wird es nicht vom übergeordnetetn Div-Container vererbt, sondern von der Angabe im Style-Tag?
Gruß,
Thortrance
<style>
div { color:red; }
</style>
Damit hast du die Schriftfarbe von allen divs auf rot gesetzt.
<div style="color:blue;">...
Die style-angabe überschreibt div { color:red; } deswegen ist "hallo" blau
Warum wird das "Welt" nicht blau angezeigt? Warum wird es nicht vom übergeordnetetn Div-Container vererbt, sondern von der Angabe im Style-Tag?
Wenn dem div keine bestimmte Klasse zugewiesen wird, ist es natürlich rot.
Gruß, Bob
Hi,
Wenn dem div keine bestimmte Klasse zugewiesen wird, ist es natürlich rot.
was hat das mit Klassen zu tun?
Es existiert einfach ein Selektor, der dieses Element selektiert. Damit gelten die entsprechenden Deklarationen natürlich für dieses Element. Das Stichwort heißt nicht Vererbung, sondern Kaskade.
Cheatah
Hallo,
kann man es also nicht so einstellen, dass der untergeordnete Div-Container seine Eigenschaften vom übergeordneten Div-Container erbt, wenn eine globale Einstellung im Style-Tag besteht?
Gruß,
Thortrance
Hi,
kann man es also nicht so einstellen, dass der untergeordnete Div-Container seine Eigenschaften vom übergeordneten Div-Container erbt, wenn eine globale Einstellung im Style-Tag besteht?
doch, natürlich. Du mußt für diesen Fall halt den Wert inherit angeben, mit einem geeigneten Selektor
div[style] div
könnte auf Dein Beispiel passen (funktioniert aber natürlich nicht im IE bis mind. 6.0, da der zu blöd für Attributselektoren ist) ...
cu,
Andreas