Voglio creare una tabella con fisso thead
e tfoot
e uno scrollable tbody
!tabella HTML con intestazione e piè di pagina fissi e corpo scorrevole senza larghezza fissa
Ho provato diversi approcci, sia CSS che JavaScript + CSS, ma sono tutti deboli e inaffidabili e posso facilmente effettuare interrompendo cambiando il markup nella demo.
Quello che voglio è un modo per avere il tavolo per si comportano come un tavolo, questo significa che il browser regolare automaticamente le colonne in base al contenuto (sia a caricamento della pagina che in caso di finestra di ridimensionamento) e che in questi scenari:
se il contenuto della intestazione della colonna (
thead > tr > th
) è più grande del contenuto del corpo della colonna (tbody > tr > td
) e più grande il contenuto del piè di pagina della colonna (tfoot > tr > td
) la colonna dovrebbe ridimensionare in base alla dimensione dell'intestazione della colonnase il contenuto del corpo della colonna (
tbody > tr > td
) è più grande del contenuto della intestazione della colonna (thead > tr > th
) e più grande il contenuto del piè di pagina della colonna (tfoot > tr > td
) la colonna dovrebbe ridimensionare in base alle dimensioni della colonna di corpose il contenuto del piè di pagina della colonna (
tfoot > tr > td
) è più grande del contenuto della intestazione della colonna (thead > tr > th
) e più grande rispetto al contenuto del corpo della colonna (tbody > tr > td
) la colonna deve essere ridimensionato in base alle dimensioni del colonna footer
Le table
seguito dovrebbero chiarire gli scenari:
<table>
<thead>
<tr>
<th>Header one *leads the width* (case 1)</th>
<th>Header two</th>
<th>Header three</th>
</tr>
</thead>
<tbody>
<tr>
<td>Column one</td>
<td>Column two *leads the width* (case 2)</td>
<td>Column three</td>
</tr>
</tbody>
<tfoot>
<tr>
<td>Footer one</td>
<td>Footer two</td>
<td>Footer three *leads the width* (case 3)</td>
</tr>
</tfoot>
</table>
Voglio una soluzione pulita (possibile) e affidabile che funziona per i diversi scenari, forse CSS solo, ma anche JavaScript è stato OK (vaniglia e pulito JavaScript , non i plugin jQuery). Non mi interessa il vecchio supporto del browser (sarebbe bello averlo o almeno raggiungere una soluzione che può degradare con garbo sul vecchio browser ma è facoltativo) ... Posso anche accettare di usare div
s invece della tabella nodi se la soluzione finale funziona come previsto ... quindi nel 2016, con browser e CSS moderni questo è possibile in qualche modo ?!
EDIT:
Il corpo dovrebbe scorrere in senso verticale e la tabella può avere un qualsiasi numero di colonne
UPDATE:
mi si avvicinò con questa soluzione: https://codepen.io/daveoncode/pen/LNomBE ma io' m ancora non soddisfatto al 100%. Il problema principale è che non posso impostare sfondi diversi per le celle di intestazione e piè di pagina.
UPDATE 2:
ora funziona!
u possibile utilizzare DataTable ?? – Sharon
vuoi ottenere lo scorrimento verticale o orizzontale? – keziah
Scorrimento verticale – daveoncode