/ 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
CSS classer identiers og rækkefølger
Fra : Thomas Due


Dato : 26-04-04 07:06

Hej,

Jeg sidder lige og spekulere på hvilken rækkefølge CSS definitioner
bliver anvendt i.

Der er jo umiddelbart, hvad, 4 steder css kan tildeles.

tag
id
class
inline style

Mit spørgsmål er sådan set, hvad er rækkefølgen på denne orden?
Er den altid den samme?
Er den altid den samme i alle browsere?

Ok, det var så tre spørgsmål, men jeg håber at der er nogen som vil
være så venlige at stille min nysgerrighed.

--
Thomas Due
Software Developer
Scanvaegt Nordic A/S
Posted with XanaNews version 1.16.3.1

 
 
Jens Gyldenkærne Cla~ (26-04-2004)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 26-04-04 10:13

Thomas Due skrev:

> Jeg sidder lige og spekulere på hvilken rækkefølge CSS
> definitioner bliver anvendt i.

Det er fastlagt i specifikationen - se reglerne her:
<http://www.w3.org/TR/CSS21/cascade.html>

> Der er jo umiddelbart, hvad, 4 steder css kan tildeles.
>
> tag
> id
> class
> inline style

Der er lidt flere hvis man medregner flerleddede selektorer som fx
ul.special li.

Det kan være lidt langhåret at udregne specificiviteten for en
given css-definition - du kan se en oversigt her:
<http://www.w3.org/TR/CSS21/cascade.html#specificity>.

Men grundlæggende så vægtes inline-style altid højst. Eksempel:

   <p id="x" class="y" style="color: red;">Hejsa</p>

Uanset hvad der er defineret af farveværdier for id=x og class=y,
skal teksten her være rød (dog kan et brugerdefineret css-ark
markeret som important override alt andet)

Herefter kommer værdier defineret med id. Eksempel

css:

#x { color: blue; }
.y { color: green; }
p { color: black; }

html:
   <p id="x" class="y">Hejsa</p>

Teksten skal farves blå, fordi id-værdien vægtes højere end både
klasseværdien og værdien for elementet p (som før kan et
brugerbaseret css-ark markeret som important override alt).


Herefter bliver det lidt sværere at give kortfattede forklaringer
på hvordan specifiviteten beregnes. Men generelt kan man sige at jo
mere speficikt en regel er defineret (flere elementer, brug af
klasser eller pseudo-klasser), desto højere vægtes den.

"p.klasse" vægtes fx lidt højere end ".klasse" (for et p-element,
forstås), mens begge har højere specifivitet end "p".

Hvis to definitioner har samme specifivitet, vil det være den der
står sidst der vinder.


> Er den altid den samme i alle browsere?

I princippet ja. Nogle browsere (primært IE) mangler dog
understøttelse for en del selektormuligheder - de regler bliver så
bare ignoreret.
--
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

Søg
Reklame
Statistik
Spørgsmål : 177559
Tips : 31968
Nyheder : 719565
Indlæg : 6408937
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste