Supposons ce balisage:
<table class="table table-bordered" align="center">
Peu importe le nombre de cellules que j'ai, le tableau a toujours une largeur de 100%. Pourquoi ça?
Supposons ce balisage:
<table class="table table-bordered" align="center">
Peu importe le nombre de cellules que j'ai, le tableau a toujours une largeur de 100%. Pourquoi ça?
Réponses:
Toutes les tables du bootstrap s'étirent en fonction de leur conteneur, ce que vous pouvez facilement faire en plaçant votre table à l'intérieur d'un .span*
élément de grille de votre choix. Si vous souhaitez supprimer cette propriété, vous pouvez créer votre propre classe de table et l'ajouter simplement à la table que vous souhaitez développer avec le contenu à l'intérieur:
.table-nonfluid {
width: auto !important;
}
Vous pouvez ajouter cette classe dans votre propre feuille de style et l'ajouter simplement au conteneur de votre table comme ceci:
<table class="table table-nonfluid"> ... </table>
De cette façon, votre modification n'affectera pas la feuille de style bootstrap elle-même (vous voudrez peut-être avoir une table fluide ailleurs dans votre document).
.span*
classe à votre tableau pour lui donner une certaine largeur.
!important
auwidth: auto
<table style="width: auto;" ...
fonctionne très bien. Testé dans Chrome 38, IE 11 et Firefox 34.
jsfiddle: http://jsfiddle.net/rpaul/taqodr8o/
Si vous utilisez Bootstrap 4, utilisez .w-auto
.
Pourquoi le combattre? Pourquoi ne pas contrôler simplement la largeur de votre table à l'aide de la grille bootstrap? Il s'agit du balisage Bootstrap 3.
<div class="row">
<div class="col-sm-6">
<table></table>
</div>
</div>
Cela créera une table qui est la moitié (6 sur 12) de la largeur de l'élément contenant.
J'utilise parfois des styles en ligne comme pour les autres réponses, mais c'est déconseillé.
Si vous utilisez bootstrap 4, il a quelques classes d'assistance intéressantes pour la largeur comme:
w-25, w-50, w-75, and w-100
Voici le document: https://getbootstrap.com/docs/4.0/utilities/sizing/
J'avais le même problème, j'ai réparé la table, puis j'ai spécifié ma largeur de td. Si vous en avez, vous pouvez également le faire.
<style>
table {
table-layout: fixed;
word-wrap: break-word;
}
</style>
<td width="10%" /td>
Je n'ai pas eu de chance avec .table-nonfluid.
width: auto !important;
!important
(c'est une mauvaise pratique ). Voir le commentaire sur une réponse ci-dessous .
J'ai essayé d'ajouter style="width: auto !important"
et fonctionne très bien pour moi!
<link>
balise de styles personnalisés apparaît sous la <link>
balise Bootstrap ), alors les règles seront mises en cascade comme prévu, et vous ne devriez pas du tout avoir besoin d'utiliser votre !important
exception. Cela est vrai car il width: 100%;
est défini table
dans le CSS Bootstrap et remplace donc votre width: auto;
règle.