J'ai une table avec beaucoup de lignes sur ma page. Je voudrais définir la hauteur de la table, disons pour 500px, de sorte que si la hauteur de la table est plus grande que cela, une barre de défilement verticale apparaîtra. J'ai essayé d'utiliser l'attribut CSS height
sur le table
, mais cela ne fonctionne pas.Comment spécifier la hauteur de la table de manière à ce qu'une barre de défilement verticale apparaisse?
Répondre
Essayez d'utiliser la propriété CSS overflow
. Il existe également des propriétés distinctes permettant de définir le comportement du débordement horizontal (overflow-x
) et du débordement vertical (overflow-y
).
Puisque vous voulez que le défilement vertical, essayez ceci:
table {
height: 500px;
overflow-y: scroll;
}
EDIT:
Apparemment <table>
éléments ne respectent pas la propriété overflow
. Cela semble être dû au fait que les éléments <table>
ne sont pas rendus comme display: block
par défaut (ils ont en fait leur propre type d'affichage). Vous pouvez forcer la overflow
propriété de travailler en définissant l'élément <table>
être un type de bloc:
table {
display: block;
height: 500px;
overflow-y: scroll;
}
Notez que cela entraînera l'élément d'avoir une largeur de 100%, donc si vous ne voulez pas qu'il prenne toute la largeur horizontale de la page, vous devez également spécifier une largeur explicite pour l'élément.
Cela ne limite pas la hauteur. – Fred
@Fred: Je pensais que c'était implicite, mais vous avez raison. J'ai ajouté une propriété explicite 'height' à mon exemple. – AgentConundrum
Cela ne fonctionne pas: http://jsfiddle.net/TSGSA/ –
Vous devez placer la table dans un autre élément et définir la hauteur de cet élément. Exemple avec css en ligne:
<div style="height: 500px; overflow: auto;">
<table>
</table>
</div>
Ceci ne permettra pas de garder le fil en place pendant que le tbody défile. – David
Cette exigence ne figure pas dans la question d'origine. –
Cette méthode fonctionne dans IE –
Peut-être utiliser 'max-height' au lieu de simplement' height' car ce dernier forcera la hauteur de la table à '500px' – Fred
Vous voudrez peut-être poser une deuxième question, à propos du défilement de la ligne d'en-tête. ;) –
Voir aussi http://stackoverflow.com/questions/1587927/scrolling-cell-in-a-100-height-table –