Toon posts:

CSS eigenschappen worden niet overschreven

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hier op stage hebben we een probleem met eerst een td element een standaard kleur mee te geven, en vervolgens de kleur van td's in een tabel met een specifieke class te wijzigen.
We hebben de volgende opzet (abstract):
HTML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<table class="window">
    <tr>
        <td>
            <table>
                <td>Deze heeft de standaard definitie</td>
            </table>
        </td>
    </tr>
</table>
<table class="window">
    <tr>
        <td>
            <table class="bla">
                <td>Deze moet overschreven worden</td>
            </table>
        </td>
    </tr>
</table>

Vervolgens de css:
Cascading Stylesheet:
1
2
3
4
5
6
7
8
table.window table td 
{
    color : black;
}
.list td
{
    color : green;
}

Het probleem is nu dat de td in de table met class 'list' niet groen wordt, maar gewoon de zwarte kleur pakt. Pas wanneer we de class aanspreken met
Cascading Stylesheet:
1
table.window .list td

wordt de kleur goed overgenomen. Dit is echt vrij beperkend, terwijl we juist een zo breed mogelijk bruikbare stylesheet willen. Waarom krijgt de .list td niet gewoon de groene kleur, zoals je zou verwachten met deze volgorde?

Test url

offtopic:
(Ik hoop dat het verkeerd gebruik van tabellen dit keer niet ter sprake hoeft te komen, ik weet dat het beter (semantisch correct) kan, de ontwerper weet dat het beter kan, maar onze werkgever wil dat deze techniek voorlopig nog wordt gebruikt omdat hij niet vertrouwd dat wij anders een betrouwbare consistente layout kunnen leveren in de korte tijd die we hebben, dit is alles wat ik erover wens te bespreken).

  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

omdat 'table.window table td' specifieker is dan '.list td'
zie http://www.w3.org/TR/CSS21/cascade.html#specificity

Intentionally left blank


Verwijderd

Topicstarter
Ah kijk aan :), zeer interessant, had er nog nooit van gehoord. Helaas is het in het geval van nested tables wel erg vervelend..

  • moozzuzz
  • Registratie: Januari 2005
  • Niet online
Je kan de .list belangrijker maken door deze te prependen met html body.

  • kennycos
  • Registratie: November 2006
  • Laatst online: 13-02-2024
let op met html> body, IE en FF kunnen verschillende dingen doen (wanneer niet....)

Verwijderd

Je vergeet ook de tr's binnen de table:

PHP:
1
2
3
<table class="bla">
 <td>Deze moet overschreven worden</td>
</table>

  • Rekcor
  • Registratie: Februari 2005
  • Laatst online: 08-10 13:03
Verwijderd schreef op zaterdag 11 november 2006 @ 10:34:
Je vergeet ook de tr's binnen de table:

PHP:
1
2
3
<table class="bla">
 <td>Deze moet overschreven worden</td>
</table>
Idd, het beste kun je je HTML en CSS eerst es laten validaten (http://validator.w3.org/ resp. http://jigsaw.w3.org/css-validator/validator-uri.html), alvorens aan DOM-debugging te doen. Scheelt een hoop koppijn en hoofdbrekens (kan ik je uit ervaring zeggen) :)

[ Voor 6% gewijzigd door Rekcor op 11-11-2006 10:50 ]


  • Pkunk
  • Registratie: December 2003
  • Laatst online: 02-11 10:08
Je zou zelfs nog
code:
1
color:green !important;


kunnen gebruiken als de nood hoog is ;)

[ Voor 7% gewijzigd door Pkunk op 11-11-2006 10:53 ]

Hallo met Tim


  • JHS
  • Registratie: Augustus 2003
  • Laatst online: 05-11 09:42

JHS

Splitting the thaum.

Er is ook speciale HTML highlighter, met behulp van [code=html] (...) [/code] ;) .

DM!

Pagina: 1