04. januar 2005 - 11:10Der er
13 kommentarer og 1 løsning
Overrule * i stylesheet
Hej
I mit css har jeg sat lidt styles i * { ... }
I et enkelt tilfælde vil jeg gerne undgå denne style. Jeg har prøvet med at sætte en class på dette div-tag men den får stadig stylen fra *. Det skal siges at fjerner jeg indholdet af * virker den class fint som jeg har sat på div-tagget. Er det muligt at overrule * {...} ?
Det skal de faktisk ikke. Du må lige smide et svar så får du points som tak for hjælpen. Løsningen er at -moz-box-sizing:border-box; ikke står i * men i andre classes som bruges af de divs som skal have den.
... Det var også kun en ide. Sand at sige har jeg ikke hørt om "-moz-box-sizing" før dette ?, men det lyder da som en smart lille ting mozilla folkene har lavet der. Så jeg må lige få kikket på det engang når jeg får tid :o)
jeg kan heller ikke finde "-moz-box-sizing" i w3's dokumentation uden dog at vide hvad deres validator siger. Men den udligner en kant-forskel ml. IE og mozilla.
Den står der næppe, da det er en special funktion til mozilla. Det er der jeg plejer at lave noget javascript til at tjekke for browser type, men dette er betydlig nemmere.
En definition af noget i en klasse, som ovenikøbet følger bagefter en definition for alle elementer, skal af flere grunde absolut override ...
For det første fungerer css-tolkning på den måde, at man kan sige, at stylesheetet tolkes fra oven og nedad, og hver eneste definerede property skrives ind i DOM-træet, som er er browserens bibliotek over hvordan hvert enkelt element skal tegnes på skærmen ...
Derudover gælder der et nærhedsprincip for style-properties, så jo 'fjernere' fra selve elementet en property er angivet, jo mindre prioritet har en property, og vil derfor ikke virke, hvis der findes en angivelse med højere prioritet !-)
Prioriteringen er:
Først en programmatisk sat på selve elementet (javascript-et-eller-andet on-the-fly !-) Derefter i en style-attribut på selve elementet Så i en property med en id-selector (id="id" -- #id{} ) Så i en property med en class-selector (class="class" -- .class{} ) Så i en property med en type-selector (<tag> -- tag{} ) -- og til allersidst med universalselectoren * ...
Så gentages det hele for elementets parent-element (hvis den pågældende property arves til elementet !-)
Op igennem hierarkiet sker det samme, men f.eks. udnyttelse af arv kan modificere prioriteringen en anelse, da f.eks. en #menudiv a{} vil override både <tag>- og *-selectorer !o]
Hvis man gerne vil vænne sig til at skrive kode, der på et senere tidspunkt kan konverteres til XHTML, skal man dog nok undlade at bruge inline-styles, da denne mulighed er på vej ud - og helt forsvinder i XHTML2.0
/mvh </bole>
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.