/ Forside / Teknologi / Udvikling / HTML / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
HTML
#NavnPoint
molokyle 11184
Klaudi 5506
bentjuul 3377
severino 2040
smorch 1950
strarup 1525
natmaden 1396
scootergr.. 1320
e.c 1150
10  miritdk 1110
placering af flere class's i samme element
Fra : Kasper Katzmann


Dato : 15-01-03 09:11

Hvad gør man hvis man gerne vil have flere css-klasser på samme element?

F.eks.
<td class="MyClass1, MyClass2">

Ovenstående virker som bekendt ikke, men kan man så ikke gøre noget andet?
Det er jo lidt fjollet hvis man skal lave klasser til alt og ikke kan
benytte forskellige sammen?


Mvh
Kasper K



 
 
Hintzmann (15-01-2003)
Kommentar
Fra : Hintzmann


Dato : 15-01-03 09:27

"Kasper Katzmann" <kasper@FJERNESkatzmann.dk> wrote in message
news:b0352a$o6e$1@news.net.uni-c.dk...
> Hvad gør man hvis man gerne vil have flere css-klasser på samme element?
>
> F.eks.
> <td class="MyClass1, MyClass2">

<td class="MyClass1 MyClass2">

Hintzmann



Jens Gyldenkærne Cla~ (15-01-2003)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 15-01-03 11:06

Hintzmann skrev:


>> Hvad gør man hvis man gerne vil have flere css-klasser på
>> samme element?

> <td class="MyClass1 MyClass2">

- Er det gyldig html/css?
- Er det bredt understøttet?
- Jeg går ud fra at MyClass2 vil vinde over MyClass1 hvis der er
uoverensstemmelser - er det korrekt?

Det kunne være lækkert med en mulighed for nedarvning i css-
klasser, men det kan ikke lade sig gøre. Til gengæld kan man jo
definere css-kode i fællesblokke:

..overskrift, .overskriftSpeciel{
   font-weight: bold;
}

..overskriftSpeciel{
   color: red;
}
--
Jens Gyldenkærne Clausen
Svar venligst under det du citerer, og citer kun det der er
nødvendigt for at forstå dit svar i sammenhængen. Se hvorfor og
hvordan på http://usenet.dk/netikette/citatteknik.html

Lasse Reichstein Nie~ (15-01-2003)
Kommentar
Fra : Lasse Reichstein Nie~


Dato : 15-01-03 12:52

Jens Gyldenkærne Clausen <jens@gyros.invalid> writes:

> Hintzmann skrev:
>
> > <td class="MyClass1 MyClass2">
>
> - Er det gyldig html/css?

Ja. Class-attributten er en mellemrums-adskilt liste af klassenavne.
Et klassenavn kan derfor ikke have mellemrum i sig.

> - Er det bredt understøttet?

Det tror jeg, uden at vide det.

> - Jeg går ud fra at MyClass2 vil vinde over MyClass1 hvis der er
> uoverensstemmelser - er det korrekt?

Nej. Der er ingen konflikt, elementet har begge klasser på samme tid.

Hvis der er to *regler* som begge matcher elementet (på grund af at en
eller flere klasser matcher, eller af andre grunde), så vil den sidste
regel vinde som altid.

/L
--
Lasse Reichstein Nielsen - lrn@hotpop.com
'Faith without judgement merely degrades the spirit divine.'

Kasper Katzmann (15-01-2003)
Kommentar
Fra : Kasper Katzmann


Dato : 15-01-03 14:19

> Ja. Class-attributten er en mellemrums-adskilt liste af klassenavne.
> Et klassenavn kan derfor ikke have mellemrum i sig.
>
> > - Er det bredt understøttet?
>
> Det tror jeg, uden at vide det.
>
> > - Jeg går ud fra at MyClass2 vil vinde over MyClass1 hvis der er
> > uoverensstemmelser - er det korrekt?
>
> Nej. Der er ingen konflikt, elementet har begge klasser på samme tid.
>
> Hvis der er to *regler* som begge matcher elementet (på grund af at en
> eller flere klasser matcher, eller af andre grunde), så vil den sidste
> regel vinde som altid.


Jeg takker for de fine svar

/Kasper K



Jens Gyldenkærne Cla~ (15-01-2003)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 15-01-03 14:30

Lasse Reichstein Nielsen skrev:

>>> <td class="MyClass1 MyClass2">
>>
>> - Er det gyldig html/css?
>
> Ja. Class-attributten er en mellemrums-adskilt liste af
> klassenavne. Et klassenavn kan derfor ikke have mellemrum i
> sig.

O.k. - helt nyt for mig. Det skal undersøges nærmere.


>> - Jeg går ud fra at MyClass2 vil vinde over MyClass1 hvis der
>> er uoverensstemmelser - er det korrekt?
>
> Nej. Der er ingen konflikt, elementet har begge klasser på
> samme tid.
>
> Hvis der er to *regler* som begge matcher elementet (på grund
> af at en eller flere klasser matcher, eller af andre grunde),
> så vil den sidste regel vinde som altid.

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?).

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.

Jeg har lavet følgende testside:
<http://www.damu.dk/jc/usenet/css.html>

Som det kan ses (testet i IE6, Opera7b og Mozilla 1.2.1) er vinder
MyClass3 over de andre klasser, uanset om den står først eller
sidst i klassetildelingen. Det afgørende er placeringen i
styleblokken.
--
Jens Gyldenkærne Clausen
Svar venligst under det du citerer, og citer kun det der er
nødvendigt for at forstå dit svar i sammenhængen. Se hvorfor og
hvordan på http://usenet.dk/netikette/citatteknik.html

Lasse Reichstein Nie~ (15-01-2003)
Kommentar
Fra : Lasse Reichstein Nie~


Dato : 15-01-03 16:18

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.'

Søg
Reklame
Statistik
Spørgsmål : 177508
Tips : 31968
Nyheder : 719565
Indlæg : 6408576
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste