Avatar billede funkyloonie Nybegynder
04. januar 2005 - 11:10 Der 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 * {...} ?
Avatar billede fennec Nybegynder
04. januar 2005 - 11:25 #1
hvordan ser dit CSS ud??
Avatar billede funkyloonie Nybegynder
04. januar 2005 - 11:26 #2
.noboxsizing {
    -moz-box-sizing:none;
}
* {             
    box-sizing:border-box;
    -moz-box-sizing:border-box;
}
Avatar billede fennec Nybegynder
04. januar 2005 - 11:37 #3
Prøv at bytte om på rækkefølgen:

* {             
    box-sizing:border-box;
    -moz-box-sizing:border-box;
}
.noboxsizing {
    -moz-box-sizing:none;
}
Avatar billede funkyloonie Nybegynder
04. januar 2005 - 11:38 #4
har prøvet det
Avatar billede fennec Nybegynder
04. januar 2005 - 12:34 #5
Jeg kan kun sige at det virker fint hos mig. Nu har jeg så også testet med andre parameter, for at se ændringningerne. Her er den kode jeg har brugt:

<style>
*{
  border:1px solid black;
  color : black;
}
.noboxsizing {
  border:none;
  color : red;
}
</style>

<div>
kshdcjsdb<br>
kshdcjsdb<br>
</div>
<div class="noboxsizing">
kshdcjsdb<br>
kshdcjsdb<br>
kshdcjsdb<br>
kshdcjsdb<br>
</div>
<div>
kshdcjsdb<br>
kshdcjsdb<br>
kshdcjsdb<br>
kshdcjsdb<br>
kshdcjsdb<br>
kshdcjsdb<br>
</div>
Avatar billede funkyloonie Nybegynder
04. januar 2005 - 13:15 #6
Ja det burde også virke men ved ikke om der er noget specielt ved -moz-box-sizing:border-box;

Har prøvet alle de muligheder jeg kan komme på.
Avatar billede fennec Nybegynder
04. januar 2005 - 13:26 #7
Skal begge attributter ikke også sættes til none:

* {             
    box-sizing:border-box;
    -moz-box-sizing:border-box;
}
.noboxsizing {
    box-sizing:none;
    -moz-box-sizing:none;
}
Avatar billede funkyloonie Nybegynder
04. januar 2005 - 14:07 #8
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.
Avatar billede fennec Nybegynder
04. januar 2005 - 14:15 #9
... 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)
Avatar billede fennec Nybegynder
04. januar 2005 - 14:15 #10
.o) <-- One Eyed Jack
Avatar billede funkyloonie Nybegynder
04. januar 2005 - 14:19 #11
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.
Avatar billede fennec Nybegynder
04. januar 2005 - 14:23 #12
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.
Avatar billede roenving Novice
05. januar 2005 - 18:18 #13
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]
Avatar billede olebole Juniormester
06. januar 2005 - 12:21 #14
<ole>

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>
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester