Jens Gyldenkærne Clausen <jens@gyros.invalid> writes:
> O.k. - helt nyt for mig. Det skal undersøges nærmere.
Det mest autoritative link må være
<URL:
http://www.w3.org/TR/REC-CSS2/selector.html#class-html>
> Det var det jeg mente. Altså hvis MyClass1 indeholder "color: red;"
> og MyClass2 indeholder "color: black;" så vil sidstnævnte vinde.
> Eller med andre ord - definitionerne i klasserne anvendes i samme
> rækkefølge som klasserne står i (ikke sandt?).
Klasser indeholder ikke noget. De kan bruges til at vælge hvilke
regler der matcher et element.
Hvis du har de to regler
.MyClass1 {color:red;}
.MyClass2 {color:black;}
Så vil elementer der kun tilhører klassen MyClass1 være røde, dem der
kun tilhører klassen MyClass2 vil være sorte, og dem der tilhører begge
klasser vil også være sorte.
Det sidste tilfælde skyldes at begge regler matches af elementet, så
*begge* gælder. Da reglerne er lige vigtige[1], så vil den sidste vinde.
Hvis du byttede om på reglerne
.MyClass2 {color:black;}
.MyClass1 {color:red;}
så ville elementer der tilhører begge klasser blive røde istedet.
Eller kort: Rækkefølgen af klassenavne i class-attributten er
fuldstændig ligegyldig.
> Jeg testede lige - det virker _ikke_ som jeg troede (det er sikkert
> også det du mente med ovenstående).
> Styledefinitionerne lægges på i den rækkefølge klasserne står i
> stylesheet-definitionen, _ikke_ (som jeg havde troet) i den
> rækkefølge man angiver dem i på selve elementet.
Nemlig!
/L
[1] Den korrekte betegnelse er "lige specifikke". Reglerne:
div.foo {color:black;}
.foo {color:red;}
er ikke lige specifikke. Den første er mere specifik (mere
selektiv i sin udvælgelse af elementer den matcher), og
vinder derfor over den anden regel ...uafhængigt af deres
indbyrdes rækkefølge. De præcise regler for hvilke regler
der vinder og hvilke er rent tællearbejde:
<URL:
http://www.w3.org/TR/REC-CSS2/cascade.html#specificity>
--
Lasse Reichstein Nielsen - lrn@hotpop.com
'Faith without judgement merely degrades the spirit divine.'