Avatar billede flamsk Nybegynder
27. juli 2005 - 10:59 Der 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?

Arver klassen .test det som er i .top ?
Avatar billede busschou Praktikant
27. juli 2005 - 11:11 #1
du kan ikke have flere klasser
Et tag må kun have een klasse
Avatar billede busschou Praktikant
27. juli 2005 - 11:14 #2
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
Avatar billede flamsk Nybegynder
27. juli 2005 - 11:15 #3
problemet er at det skal være custom class, og ikke et som er dedikeret til et enkelt tag som eks. td
Avatar billede busschou Praktikant
27. juli 2005 - 11:17 #4
sådan her?
---
td{
    width:100px;
    height:100px;
}
.white{
    BACKGROUND-COLOR: white
}
.blue{
    BACKGROUND-COLOR: blue
}
---
Avatar billede busschou Praktikant
27. juli 2005 - 11:18 #5
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
Avatar billede keysersoze Ekspert
27. juli 2005 - 11:28 #6
personligt kan jeg bedst lide at man gør sådan;

.class1 {
  width:100px;
}

.class2 {
  height:100px;
}

<td class="class1 class2">

for på den måde skaber man den største genbrugelighed af klasser
Avatar billede busschou Praktikant
27. juli 2005 - 11:33 #7
keysersoze >> class="class1 class2" den kan da ikke validere?
Avatar billede busschou Praktikant
27. juli 2005 - 11:33 #8
eller har jeg måske misforstået noget hmm
Avatar billede keysersoze Ekspert
27. juli 2005 - 11:40 #9
den? hvad er "den"?
Avatar billede busschou Praktikant
27. juli 2005 - 11:45 #10
den er
--
class="class1 class2"
--
jeg har bare altid været af den opfattelse at et element kun måtte have een klasse
Avatar billede keysersoze Ekspert
27. juli 2005 - 11:59 #11
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.

;o)
Avatar billede flamsk Nybegynder
27. juli 2005 - 11:59 #12
keysersoze kan du svare mig på mit oprindelige spørgsmål ?
Avatar billede busschou Praktikant
27. juli 2005 - 12:02 #13
ok keysersoze så trækker jeg mig, jeg må have misforstået det engang på en eller anden side
Så er dit svar jo svar på det oprindelige spørgsmål :o)
Avatar billede keysersoze Ekspert
27. juli 2005 - 12:12 #14
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
Avatar billede busschou Praktikant
27. juli 2005 - 12:15 #15
men der er vel så del-spørgmålet om det er muligt generelt at arve sådan
--
.class1{
//noget
}

.class1 .class2{
//noget andet
}
--
Men det er vel ikke muligt
Avatar billede softspot Forsker
27. juli 2005 - 12:22 #16
Under antagelse af at du har flg. stylesheet:

.Top
{
    BACKGROUND-COLOR: white
}
.Top .test
{
    BACKGROUND-COLOR: blue
}

Så vil .top fungere på det element du sætter den på, f.eks.:

<span class="top">noget pladder</span>

og .top .test vil fungere på elementer der ligger inde i elementer der har klassen .top, f.eks.:

<span class="top"><span class="test">noget</span> pladder</span>

Du kan godt skrive

<span class="top test">noget</span>

men den vil få baggrundsfarven hvid, da den ikke ligger inde i et element der har klassen top. Derimod vil teksten "noget" i flg.:

<span class="top"><span class="top test">noget</span> pladder</span>

få baggrundsfarven blå, da den ligger inde i et element med klassen top (og fordi den style er defineret sidst i dit stylesheet).
Avatar billede keysersoze Ekspert
27. juli 2005 - 12:30 #17
css er hverken et script- eller programmeringssprog så der kan ikke laves nedarvinger i selve stylesheetet.

det tætteste du kommer på er vel dette;

<style type="text/css">
.boldtxt {
    font-family: Verdana, Geneva, Arial, Helvetica, sans-serif;
    font-size: 11px;
    color: #000000;
    font-weight : bold;
}
.boldtxt.faqleft {
    background-color : Blue;
}
</style>

<div class="boldtxt">bla&nbsp;
    <div class="faqleft">Blabla</div>
</div>
Avatar billede softspot Forsker
27. juli 2005 - 12:32 #18
Man kan tale om at elementer arver styles fra andre elementer, men ellers vil jeg give keysersoze ret...
Avatar billede flamsk Nybegynder
27. juli 2005 - 12:57 #19
Kanon, dit svar 12:22:55 er det gyldige :)
det virker med en klasse i en klasse, så det er bare super, så er det nemmere at strukturere det.
Avatar billede softspot Forsker
27. juli 2005 - 13:21 #20
men du gav keysersoze point...?
Avatar billede flamsk Nybegynder
27. juli 2005 - 13:32 #21
dammm,,,  sorry,, hvordan gør man det om ?
Avatar billede softspot Forsker
27. juli 2005 - 13:34 #22
Det skal keysersoze vist involveres i, for det er ham der skal afgive points igen...
Avatar billede roenving Novice
27. juli 2005 - 13:53 #23
>>keysersoze @27/07-2005 12:30:17

-- 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 !-)
Avatar billede keysersoze Ekspert
27. juli 2005 - 14:03 #24
roenving >> hvilken del mener du er forkert?

flamsk >> hvis der er givet point forkert så sig hvordan de skal deles og jeg opretter spm med point
Avatar billede roenving Novice
27. juli 2005 - 14:11 #25
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 ...
Avatar billede flamsk Nybegynder
27. juli 2005 - 14:15 #26
keysersoze hvis du deler dem ligeover med softspot 100/100
Avatar billede keysersoze Ekspert
27. juli 2005 - 14:16 #27
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.
Avatar billede roenving Novice
27. juli 2005 - 14:24 #28
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 !-)
Avatar billede keysersoze Ekspert
27. juli 2005 - 15:22 #29
det er vi så helt enige om :)

http://www.eksperten.dk/spm/635364
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