27. juli 2005 - 10:59Der er
28 kommentarer og 1 løsning
Kan man have en klasse i en klasse?
Kan følgende lade sig gøre ?
.Top { BACKGROUND-COLOR: white } .Top .test { BACKGROUND-COLOR: blue }
i sin særning kan man jo normalt bare skrive <td class="top">
men hvad skriver man hvis man vil have fat i klassen .test som ligger inde i klassen top ? <td class="top.test"> ?? <td class="top:test"> ?? <td class="top/test"> ??
Er der nogen som kender løsningen ? hvis det altså kan lade sig gøre?
men du kan lave sådan her --- td{ width:100px; height:100px; } td .white{ BACKGROUND-COLOR: white } td .blue{ BACKGROUND-COLOR: blue } --- Så vil alle <td> have den størrelse som er angivet men kun <td class="blue"> vil være blå. Samtidig arver <td class="blue"> størrelsen fra td
Du kan ikke give et tag mere end een klasse Men du kan godt sige at flere klasser skal have samme style Så skal der bare komma imellem --- .white, .TOP{ BACKGROUND-COLOR: white } --- Så bliver på class="white" og class="top" hvide
hvis ikke du tror mig kan du da kaste et blik på w3;
CLASS This attribute assigns a class name or set of class names to an element. Any number of elements may be assigned the same class name or names. Multiple class names must be separated by white space characters.
flamsk >> jeg vil mene det burde være muligt at tolke noget ud fra svaret 11:28:51. Det er umuligt for mig at komme med en endelig løsning da det du skriver i spørgsmålet er umuligt - du kan nemlig ikke have to baggrundsfarver
-- njah, det er nu ikke rigtigt, for i den kontekst css bruges i snakker man om kaskadering, dvs. at elementer befinder sig i en træ-struktur, hvor en property sat i en 'hoved'-gren normalt også skal benyttes af elementer længere ude i grenen (medmindre de overskrives på en eller anden måde der eller undervejs !-)
-- egentlige undtagelser findes dog for en masse forskellige properties på forskellige elementer, eksempelvis vil font-familien kaskadere ind i en tabel, men ingen andre text-properties følger med derind !-)
I denne struktur 'arver' du faktisk properties til underelementer (og i css hedder det egentlig, at properties kaskaderes, deraf navnet Cascading StyleSheets !-)
<div style="font-family:monospace;font-size:x-large;color:red;"> <span style="color:blue;"> En blå tekst i monospace </span> <table> <tr> <td style="font-size:larger;">Stor tekst</td> <td>Normal størrelse</td> <td style="font-size:smaller;">Lille tekst</td> </tr> </table> En simpel tekst i diven </div>
-- men bemærk netop, at tabellen ikke arver font-størrelsen eller farven ...
ja - men overstående er jo ikke arving af klasser men af egenskaber i dine elementer. Det jeg snakker om er at en klasse decideret arver fra en anden klasse.
Nej, men der er jo også den anden ende af kaskadering, nemlig når man laver selectors, som består af flere selectorer, netop den konstruktion, som også har været omtalt i dette spørgsmål ...
-- og det er fuldt korrekt, at en regel i stylesheetet ikke kan 'arve' noget fra en anden regel, men elementer vil 'arve' de properties, som er sat for en omkringliggende klasse, så det i praksis er en slags arv, kaskadering ...
Prioritering af regler i stylesheetet og prioritering af enkelt-properties på forskellige elementer laver mange ting, som ofte får folk til at opgive at opbygge deres stylesheetes på den mest hensigtsmæssige måde, derfor er det vigtigt at gøre opmærksom på, at rules ikke kan arve, men det gør elementer altså helt automatisk ...
-- og det klassiske eksempel er, når man sætter properties på links via pseudo-selektorerne :visited, :hover osv., der ligner det faktisk en slags arv, for sætter du en property på :link, vil den også være tilstede på :hover, hvis ikke den overskrives !-)
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.