2010-05-07 13 views
9

Perché entrambi i bordi non vengono visualizzati?Perché il confine di <th> e <thead> non vengono visualizzati qui?

http://jsfiddle.net/r8mA7/

<table> 
<thead style="border-top:10px solid red; background:yellow"> 
    <tr><th style="border-top:10px solid green">Name</th></tr> 
</thead> 
<tbody> 
    <tr><td>Bob</td></tr> 
    <tr><td>Tom</td></tr> 
</tbody> 
</table> 
+0

Cosa intendi? – SLaks

+0

Alcuni HTML e CSS potrebbero aiutare, forse hai un problema a cascata. – Kyle

+0

Um, sembra a posto in Firefox. Quale browser utilizzate? http://i42.tinypic.com/2ahrvhz.png – MiffTheFox

risposta

12

È il comportamento previsto. Strano, ma atteso.
I bordi stanno crollando e quello più spesso prevale.

È possibile visualizzarlo con questo esempio: i bordi commoventi sulla prima riga vengono compressi, quelli sulla seconda riga no.
Sulla prima riga la prima cella ottiene il bordo più spesso (10px verde> 5px rosso) e la seconda cella ottiene il bordo più spesso (5px rosso> 3px verde).
Sulla seconda riga non ci sono bordi "contigui" da comprimere, quindi i bordi verde 10px e verde 3px vengono visualizzati normalmente.

<table> 
<thead style="border-top:5px solid red; background:yellow"> 
    <tr> 
    <th style="border-top:10px solid green">Name</th> 
    <th style="border-top:3px solid green">Name</th> 
    </tr> 
    <tr> 
    <th style="border-top:10px solid green">Name</th> 
    <th style="border-top:3px solid green">Name</th> 
    </tr> 
</thead> 
</table> 

Ho bisogno di chiarire comunque la spiegazione?

PS: in teoria è possibile utilizzare la proprietà border-collapse sul tavolo per impedirlo, ma non sto gestendo.
Inoltre, il valore predefinito sembra non essere compresso.

Ulteriori letture: http://www.w3.org/TR/CSS2/tables.html#borders

2

È possibile utilizzare l'elemento <thead> come selettore in questo modo:

thead { background: red; } 

You can see an example here

+1

che sto dando 'thead {border-top: 10px rosso fisso}' ma non funziona –

+0

ok guarda questo perché il bordo verde di th non mostra http://jsfiddle.net/r8mA7/ –

+0

@metal - Ecco un esempio aggiornato che si trova qui: http://jsfiddle.net/uwQFW/2/ –

-4

Dare un nome di classe al vostro tavolo. E lo stile come qui sotto

<style> 
.mytable thead{ 
//your style goes here 
} 


</style> 

EDIT:

<table> 
<thead style="border-top:10px solid red; background:yellow"> 
    <tr><th style="border-left:10px solid green">Name</th></tr> 
</thead> 
<tbody> 
    <tr><td>Bob</td></tr> 
    <tr><td>Tom</td></tr> 
</tbody> 
</table> 

provare questo codice. I confini di thead e th sono mostrati. Può essere che abbia una precedenza maggiore quando esiste uno stesso conflitto di attributi di stile tra th e thead

+2

Non è la domanda del poster. – marr75

Problemi correlati