Je suis confronté à un problème lors de la configuration du défilement de dépassement de largeur de hauteur du corps.
<style>
tbody{
height:50px;display:block;overflow:scroll
}
</style>
<h3>Table B</h3>
<table style="border: 1px solid red;width:300px;display:block">
<thead>
<tr>
<td>Name</td>
<td>phone</td>
</tr>
</thead>
<tbody style='height:50px;display:block;overflow:scroll'>
<tr>
<td>AAAA</td>
<td>323232</td>
</tr>
<tr>
<td>BBBBB</td>
<td>323232</td>
</tr>
<tr>
<td>CCCCC</td>
<td>3435656</td>
</tr>
</tbody>
</table>
Je veux la table B comme la table A avec un défilement de débordement.
Toute aide serait appréciée.
Merci beaucoup, M.
Réponses:
si vous souhaitez
tbody
afficher un parchemin, transformez-le en fichierblock
.Pour garder le comportement de
table
, transformertr
entable
.pour pulvériser uniformément les cellules, utilisez
table-layout:fixed;
DEMO
CSS pour votre test HTML:
Si
tbody
ne montre pas un livre, parce que le contenu est inférieurheight
oumax-height
, à tout moment régler le défilement avec:overflow-y:scroll;
. DÉMO 2la source
overflow:auto
paroverflow-y: scroll
pour éviter que les en-têtes restent 1em à gauche même si le corps n'a pas besoin de barre de défilement.C'est un moyen simple d'utiliser la barre de défilement pour le corps du tableau
la source
width: 100px
à l'td, th
intérieurtbody, thead
Une autre approche consiste à envelopper votre tableau dans un élément défilable et à définir les cellules d'en-tête pour qu'elles restent en haut.
L'avantage de cette approche est que vous n'avez pas besoin de modifier l'affichage sur tbody et que vous pouvez laisser au navigateur le soin de calculer la largeur de colonne tout en gardant les largeurs de cellule d'en-tête alignées sur les largeurs de colonne de cellule de données.
la source
height: 100%
tfoot
avec une position inférieure collante de 0 et cela fonctionne comme un charme. Très bonne réponse!Par défaut,
overflow
ne s'applique pas aux éléments de groupe de tables, sauf si vous donnez undisplay:block
à<tbody>
vous devez également donner unposition:relative
etdisplay: block
à<thead>
. Vérifiez la DEMO .la source
La plus simple de toutes les solutions:
Ajoutez le code ci-dessous en CSS:
la source
tbody tr
éléments de la page. Changer pour:.tableClassName thead, .tableClassName tbody tr {...}
Modifiez votre deuxième code de table comme ci-dessous.
DÉMO JSFIDDLE
la source
Dans mon cas, je voulais avoir une hauteur de table réactive au lieu d'une hauteur fixe en pixels comme le montrent les autres réponses. Pour ce faire, j'ai utilisé le pourcentage de propriété de hauteur visible et le débordement sur div contenant le tableau:
De cette façon, le tableau s'agrandira avec la fenêtre redimensionnée.
la source
Sur la base de cette réponse , voici une solution minimale si vous utilisez déjà Bootstrap:
Testé sur Bootstrap v3
la source
Je suppose que ce que vous essayez de faire, c'est de garder l'en-tête fixe et de faire défiler le contenu du corps. Vous pouvez faire défiler le contenu dans 2 directions:
tbody
balise, car attribuerdisplay:block
oudisplay:inline-block
casser la mise en page du tableau.Voici une solution utilisant
divs
: JSFiddleHTML:
CSS:
Explication:
Vous avez un
sliding wrapper
qui contiendra toutes les données.Notez ce qui suit:
Il y a une différence de 17px car nous devons prendre en compte la largeur de la barre de défilement.
la source
Webkit semble être utilisé en interne
display: table-row-group
pour latbody
balise. Il y a actuellement un bug avec le réglage de la hauteur: https://github.com/w3c/csswg-drafts/issues/476Espérons qu'il sera bientôt résolu.
la source
HTML:
CSS:
cela fonctionnera également:
la source
Créer des tableaux déroulants est toujours un défi. Il s'agit d'une solution où le tableau fait défiler à la fois horizontalement et verticalement avec une hauteur fixe sur le corps, ce qui fait que la tête et le corps "collent" (sans affichage: collant). J'ai ajouté une "grande" table juste pour montrer. Je me suis inspiré de G-Cyrillus pour créer l'affichage du corps: block; Mais quand il s'agit de la largeur d'une cellule (à la fois dans l'en-tête et dans le corps), cela dépend du contenu intérieur. Par conséquent, j'ai ajouté du contenu avec une largeur spécifique à l'intérieur de chaque cellule, à la fois dans la tête et la première ligne minimale dans tbody (les autres lignes s'adaptent en conséquence)
la source