Thomas Luethi: a { ... } = a.link { ... }?

Beitrag lesen

Hallo Molily,

Du solltest uebrigens _immer_ gleichzeitig mit der Vordergrund- auch die Hintergrundfarbe definieren.
Warum sollte man das immer (mit Betonung auf »immer«, nicht »an geeigneter Stelle« o.ä.)?

Weil es sonst eine Warnung beim CSS-Validator gibt ;-)

Im Ernst: Weil es sonst passieren kann, dass der Text, fuer den nur die Vordergrundfarbe
vorgegeben ist, auf einer Hintergrundfarbe steht, auf der man ihn nicht (oder nur schlecht)
lesen kann (oder umgekehrt).
Gruende z.B.:

  • Browser kann gewisse Selektoren nicht (IMHO ziemlich wahrscheinlich)
  • Interferenz mit Benutzerstylesheets (IMHO eher unwahrscheinlich,
       gerade, wenn dort Vorder- und Hintergrundfarbe konsequent
       immer beide angegeben sind)

Beispiel:
<div><p>Bla Fasel <span>Spantext</span></p></div>

body { color:white; background-color:blue; }
div>p { color:black; background-color:white; }
span { color:red; }
/* Saemtliche Farben nur als Beispiel, um das Problem
   zu veranschaulichen. ;-) */

Man koennte ja argumentieren, dass fuer den Spantext
Vorder- und Hintergrundfarbe sehr wohl definiert sind,
weil er die Hintergrundfarbe ja vom uebergeordneten Element erbt.

Wenn ein Browser aber den Selektor div>p nicht kann,
dann steht rote Schrift auf blauem Hintergrund, was
sehr schlecht zu lesen ist, nicht nur fuer Farbenblinde...

Wenn man es so definiert:
span { color:red; background-color:white; }
kann das nicht passieren.
Man ist auf der sicheren Seite.

Das ist IMHO auch der Grund, warum der Validator Warnungen ausgibt,
wenn man in einer Definition nur die eine Farbe nimmt.

transparent und inherit beseitigen zwar die Warnung, aber
sie sind eben truegerisch, weil sie genau zu obigen Fehlern
fuehren koennen.

Freundliche Gruesse,

Thomas