Lorsque la largeur d'une table dépasse la largeur de la travée, comme cette page: http://jsfiddle.net/rcHdC/
Vous verrez que le contenu de la table est en dehors du span
.
Quelle serait la meilleure méthode pour répondre à ce cas?
Lorsque la largeur d'une table dépasse la largeur de la travée, comme cette page: http://jsfiddle.net/rcHdC/
Vous verrez que le contenu de la table est en dehors du span
.
Quelle serait la meilleure méthode pour répondre à ce cas?
Réponses:
Bootstrap 3 a maintenant des tables responsives prêtes à l'emploi. Hourra! :)
Vous pouvez le vérifier ici: https://getbootstrap.com/docs/3.3/css/#tables-responsive
Ajoutez un <div class="table-responsive">
entourage à votre table et vous devriez être prêt à partir:
<div class="table-responsive">
<table class="table">
...
</table>
</div>
Pour le faire fonctionner sur toutes les mises en page, vous pouvez le faire:
.table-responsive
{
overflow-x: auto;
}
overflow-x: auto
d'un CSS
fichier personnalisé fait l'affaire pour des mises en page d'affichage plus grandes.
border: 1px solid #dddddd;
.table-responsive td, .table-responsive th { white-space:nowrap; }
pour vous assurer que les cellules ne se réduisent pas automatiquement et n'ajoutent pas de sauts de ligne.
Une option disponible est fooTable. Fonctionne très bien sur un site Web réactif et vous permet de définir plusieurs points d'arrêt ... fooTable Link
Il existe de nombreuses choses que vous pouvez faire lorsque vous gérez des tables réactives.
J'aime personnellement cette approche de Chris Coyier:
Vous pouvez trouver de nombreuses autres alternatives ici:
Si vous pouvez tirer parti de Bootstrap et obtenir quelque chose rapidement, vous pouvez simplement utiliser les noms de classe ".hidden-phone" et ".hidden-tablet" pour masquer certaines lignes, mais cette approche pourrait être la meilleure dans de nombreux cas. Plus d'informations (voir "Classes d'utilitaires réactifs"):
Si vous utilisez Bootstrap 3 et Less, vous pouvez appliquer les tableaux réactifs à toutes les résolutions en mettant à jour le fichier:
tables.less
ou écraser cette partie:
@media (max-width: @screen-xs) {
.table-responsive {
width: 100%;
margin-bottom: 15px;
overflow-y: hidden;
overflow-x: scroll;
border: 1px solid @table-border-color;
// Tighten up spacing and give a background color
> .table {
margin-bottom: 0;
background-color: #fff;
// Ensure the content doesn't wrap
> thead,
> tbody,
> tfoot {
> tr {
> th,
> td {
white-space: nowrap;
}
}
}
}
// Special overrides for the bordered tables
> .table-bordered {
border: 0;
// Nuke the appropriate borders so that the parent can handle them
> thead,
> tbody,
> tfoot {
> tr {
> th:first-child,
> td:first-child {
border-left: 0;
}
> th:last-child,
> td:last-child {
border-right: 0;
}
}
> tr:last-child {
> th,
> td {
border-bottom: 0;
}
}
}
}
}
}
Avec:
@media (max-width: @screen-lg) {
.table-responsive {
width: 100%;
...
Notez comment j'ai changé la valeur de la première ligne @ screen-XX.
Je sais que rendre toutes les tables réactives peut ne pas sembler très bonne, mais j'ai trouvé extrêmement utile de l'activer jusqu'à LG sur de grandes tables (beaucoup de colonnes).
J'espère que ça aide quelqu'un.