Avatar billede supermand69 Nybegynder
08. september 2004 - 16:57 Der er 13 kommentarer og
1 løsning

padding virker ikke

Jeg kan ikke få min padding til at virke :(

Her er et udsnit af min CSS fil:
--------------------------
td.cell {
    padding-top: 1px;
    padding-bottom: 2px;
    padding-left: 6px;
    padding-right: 6px;
}

.tab_bottom {
    background:#edf2fc;
    border:1px solid #b3cdfc;
    border-top:0px;
    padding-bottom:10px;
}

Min padding i tab_bottom virker ikke og den bruger den satte padding fra cell

<td class="cell tab_bottom">

- men hvis jeg gør således virker det godt nok

<td class="cell tab_bottom" style="padding-bottom:10px">
Avatar billede roenving Novice
08. september 2004 - 17:12 #1
-- er du sikker på, at dine selektorer står i præcis den rækkefølge i din css-fil ?-)
Avatar billede supermand69 Nybegynder
08. september 2004 - 20:52 #2
jeps...

men efter jeg skrev td.tab_bottom i stedet for .tab_bottom virker det :)
Avatar billede roenving Novice
08. september 2004 - 22:23 #3
?-)

-- det lyder mærkeligværdigt ...
Avatar billede supermand69 Nybegynder
08. september 2004 - 22:29 #4
ja synes jeg nemlig også... (?)
Avatar billede olebole Juniormester
09. september 2004 - 21:17 #5
<ole>

Nej, det er helt i overensstemmelse med standarden  :)

/mvh
</bole>
Avatar billede roenving Novice
11. september 2004 - 04:07 #6
>>ole

Hvordan det ?-)

-- en klasse er vel en klasse ...
Avatar billede olebole Juniormester
11. september 2004 - 04:16 #7
yups ... men, når den ene er deklareret som værende en klasse under 'td', skal den anden klasse også deklareres på denne måde. Ellers kan de ikke bruges til at extend'e hinanden  :)
/mvh
Avatar billede roenving Novice
11. september 2004 - 04:24 #8
Okay ...

Har du en idé til hvordan den logiske forklaring til, at det er nødvendigt, ser ud ?-)
Avatar billede olebole Juniormester
11. september 2004 - 04:31 #9
Hmmmm ... jeg læste engang noget om det på W3C. Hvor det mere præcist var, kan jeg zq ikke lige huske.
Jeg vil gerne prøve at kikke. Finder jeg det, får du lige et vink ... enten her eller i et andet spm  :)
Avatar billede olebole Juniormester
11. september 2004 - 04:59 #10
Jeg tror, den lange forklaring var i et eller andet arbejdspapir eller udvikler mail-tråd. Her kan du dog prøve at se
  http://www.w3.org/TR/CSS21/cascade.html#specificity

td.cell selector'en har en specifity på 0,0,1,1
.tab_bottom slectoren har derimod en specifity på 0,0,1,0

Når du så kalder med begge <td class="cell tab_bottom" ...>, vil den første CSS-regel overrule den anden.
Man skal holde tungen lige i bukserne, når der kaskaderes  ;o)
/mvh
Avatar billede olebole Juniormester
11. september 2004 - 17:18 #11
Okay, jeg tror, jeg er noget mere frisk nu, så jeg prøver at forklare:
Det kommer ikke bag på nogen, at når jeg skriver:

    .en-regel {
        color: red;
        border: 1px solid white;
    }
    .en-regel {
        color: blue;
    }

så bliver teksten i et div med klassen 'en-regel' blå og border'en bliver hvid. Den sidste overskriver den første ved fælles properties (her tekstfarven).
Det samme gælder, hvis div'et ligger i en <td> og jeg skriver:

    td.en-regel {
        color: red;
        border: 1px solid white;
    }
    td.en-regel {
        color: blue;
    }

... eller:

    .en-regel {
        color: red;
        border: 1px solid white;
    }
    td.en-regel {
        color: blue;
    }

Skriver jeg derimod:

    td.en-regel {
        color: red;
        border: 1px solid white;
    }
    .en-regel {
        color: blue;
    }

kan den sidste regel ikke overskrive den første og teksten forbliver rød ... hvorfor nu det?
Fordi i kaskaden af stylesheets har de forskellige selectorer forskellig 'vægt' - som det vises i figuren bag det link, jeg skrev i mit seneste indlæg. I princippet kan man sige, at jo bedre specificeret selektor er, desto 'tungere' er reglen.

Hvis jeg skriver:

    .klasse-1 {
        background-color: blue;   
    }
    .klasse-1.klasse-2 {
        color: white;
        background-color: red;
    }
   
    <div class="klasse-1">
        <div class="klasse-2">bla bla bla</div>
    </div>
   
... svarer inner-div'ets egenskaber til, hvis jeg havde ét div med begge klasser:
   
    .klasse-1 {
        background-color: blue;   
    }
    .klasse-2 {
        color: white;
        background-color: red;
    }
   
    <div class="klasse-1 klasse-2">bla bla bla</div>

'klasse-2' udvider 'klasse-1' - og hvis de har ens properties, overskrives disse properties i klasse-1 af dem i klasse-2. Den sidste overskriver den første.
Bytter jeg om på de to: class="klasse-2 klasse-1", bliver baggrundsfarven naturligvis blå.

MEN ... som vi så før, kan dette kun ske, hvis de to selektorer har samme 'vægt' - samme specifity ... eller hvis den sidste selektor har højere specifity.

... QED!  :)
Avatar billede roenving Novice
11. september 2004 - 17:22 #12
Du tager fejl med ombytningen, ole, det er alene rækkefølgen i stylesheetet der bestemmer !-)
Avatar billede olebole Juniormester
11. september 2004 - 17:31 #13
Naturligvis .... dooohhhh .... der blev jeg vist lidt for ivrig. 'Kaskade', Ole 'k-a-s-k-a-d-e' ... kan du SÅ lære det?  :D
Avatar billede olebole Juniormester
11. september 2004 - 17:32 #14
... anyway, så ændrer det ikke forklaringen på, hvorfor spørgerens problem opstod  ;o)
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