2012-09-26 2 views
7

Qualcuno sa un modo vaniglia di far scorrere il corpo di un tavolo usando solo html e css?Come faccio a far scorrere un tavolo

La soluzione più ovvia

tbody { 
    height: 200px; 
    overflow-y: scroll; 
} 

non funziona.

Non sarebbe questo l'uso ovvio delle tabelle?

sto facendo qualcosa di sbagliato?

risposta

13

È necessario dichiarare prima un'altezza, altrimenti la tabella si espanderà in base al suo contenuto.

table{ 
    overflow-y:scroll; 
    height:100px; 
    display:block; 
} 

EDIT: dopo aver chiarito il problema ho modificato il violino: check out this Example o that way. È piuttosto hacky e non è garantito per funzionare crossbrowser ma potrebbe funzionare per il tuo caso.

+0

Ancora non un problema –

+0

cosa succede al 'thead' parte del tavolo? –

+0

L'uso di 'display: block' funzionerebbe, ma generalmente non sarebbe raccomandato in quanto il browser non lo considererebbe più una tabella. – scoota269

4

Non è possibile farlo con un tavolo. Avvolgi il tavolo con un div a dagli qualcosa:

div.wrapper { 
    overflow:hidden; 
    overflow-y: scroll; 
    height: 100px; // change this to desired height 
} 
1
+0

Sì, tranne per il fatto che devo ancora rendere statica la larghezza delle colonne. Davvero non voglio decidere la larghezza prima del runtime. –

+0

e la seconda soluzione è un hack se mai ne ho visto uno. senza il tag di larghezza impostato, non vi è assolutamente alcuna garanzia che i colomi si allineino con le intestazioni –

+0

Una domanda simile è stata posta qui: http://stackoverflow.com/questions/10838700/large-dynamically-sized-html-table- con-a-fixed-scroll-row-e-fixed-scroll-colu – RMN