Moin!
Das lese ich immer mal wieder, habe eben auch darin gelesen, habe aber keine solche Konstruktion gefunden:
.inhalt, .inhalt * {.......}
Habe ich das überlesen?
Ja. Im Detail gleich mehr.
Ich habe gelernt:
h1, h1, p {.....} Die CSS-Anweisung gilt für mehrere HTML-Elemente
Korrekt. Das, was da vor den geschweiften Klammern steht, nennt man den Selektor. Bzw. _die_ Selektoren. Die von dir gelernte Regel: Mehrere Selektoren werden durch Komma getrennt, und für alle Elemente in dieser Liste gilt die nachfolgende Style-Definition gleichermaßen. Gerade so, als würde man stattdessen
h1 { Definition }
h2 { Definition }
p { Definition }
schreiben. Man spart sich das dreimalige Abtippen der Definition und muß Änderungen auch nur einmal machen.
Ich habe gelernt: Klassenselektoren beginnen mit einem .
Korrekt. Bedenke: Alles, was vor der geschweiften Klammer steht, ist ein Selektor. Bei "h1 { ... }" ist der Selektor "h1". Bei Klassen ist der Selektor ".klasse", bei IDs ist er "#idname".
Allerdings kann der Selektor auch komplexer sein, er muß nicht nur ein einziges Element haben.
In CSS1 gilt beispielsweise (das wirst du vielleicht nicht mehr so gelernt haben:
p b {...}
Das selektiert alle <b>-Elemente, die sich innerhalb eines <p> befinden. Also beispielsweise keine, die <h1><b>...</b></h1> sind.
Das alles kombiniert:
.inhalt, .inhalt * {...}
Eine Liste von zwei Selektoren, die gleichartig formatiert werden.
Selektor 1 ist ".inhalt". Also alle Elemente dieser Klasse.
Selektor 2 ist ".inhalt *". Also alle Elemente ("*"), die in einem Element der Klasse ".inhalt" enthalten sind. "*" steht für "alles".
Demzufolge habe ich die o.a. Konstruktion so gedeutet, dass die durch Kommata getrennte CSS-Anweisung für zwei Klassen gilt und habe zwei Klassen im table-Element eingebunden. Allerdings habe ich so etwas noch nie gesehen. Ich will gern glauben, dass das kreuzfalsch ist.
Nein, diese Überlegung ist falsch. Natürlich kannst du zwei Klassen in einem HTML-Element einbinden:
.red { font-color:red; }
.small { font-size:smaller; }
<p class="small red">Klein und rot</p>
<p class="small">Nur klein, nicht rot</p>
Das hat aber nur dann Sinn, wenn es wirklich zwei unterschiedliche Klassen sind, die sich sozusagen sinnvoll zusammenaddieren lassen.
.inhalt * { }
definiert CSS-Anweisungen fuer beliebige Elemente,
die in einem Element der Klasse "inhalt" enthalten sind.
??? Verstehe ich leider nicht.
Oder soll das heißen:....definiert Anweisungen fuer beliebige Elemente, die in einem Element _mit_ der Klasse "inhalt" enthalten sind.
Genau.
- Sven Rautenberg
--
ss:) zu:) ls:[ fo:} de:] va:) ch:] sh:) n4:# rl:| br:< js:| ie:( fl:( mo:|