Załóżmy, że ten znacznik:
<table class="table table-bordered" align="center">
Bez względu na to, ile mam komórek, tabela ma zawsze 100% szerokości. Dlaczego tak jest?
Załóżmy, że ten znacznik:
<table class="table table-bordered" align="center">
Bez względu na to, ile mam komórek, tabela ma zawsze 100% szerokości. Dlaczego tak jest?
Odpowiedzi:
Wszystkie stoły w module bootstrap są rozciągane zgodnie z ich pojemnikiem, co można łatwo zrobić, umieszczając stół w .span*
wybranym elemencie siatki. Jeśli chcesz usunąć tę właściwość, możesz utworzyć własną klasę tabeli i po prostu dodać ją do tabeli, którą chcesz rozszerzyć, zawierającą zawartość:
.table-nonfluid {
width: auto !important;
}
Możesz dodać tę klasę do własnego arkusza stylów i po prostu dodać ją do kontenera swojej tabeli w następujący sposób:
<table class="table table-nonfluid"> ... </table>
W ten sposób twoja zmiana nie wpłynie na sam arkusz stylów bootstrap (możesz chcieć mieć płynną tabelę w innym miejscu w dokumencie).
.span*
klasę do swojego stołu, aby nadać mu pewną szerokość.
!important
dowidth: auto
<table style="width: auto;" ...
działa w porządku. Testowane w Chrome 38, IE 11 i Firefox 34.
jsfiddle: http://jsfiddle.net/rpaul/taqodr8o/
Jeśli używasz Bootstrap 4, użyj .w-auto
.
Po co z tym walczyć? Dlaczego po prostu nie kontrolować szerokości stołu za pomocą siatki bootstrap? To jest znacznik Bootstrap 3.
<div class="row">
<div class="col-sm-6">
<table></table>
</div>
</div>
Spowoduje to utworzenie tabeli o połowie (6 z 12) szerokości elementu zawierającego.
Czasami używam stylów wbudowanych zgodnie z innymi odpowiedziami, ale jest to odradzane.
Jeśli używasz bootstrap 4, ma kilka fajnych klas pomocniczych dla szerokości, takich jak:
w-25, w-50, w-75, and w-100
Oto dokument: https://getbootstrap.com/docs/4.0/utilities/sizing/
Miałem ten sam problem, naprawiłem tabelę, a następnie określiłem szerokość td. Jeśli masz, możesz to zrobić.
<style>
table {
table-layout: fixed;
word-wrap: break-word;
}
</style>
<td width="10%" /td>
Nie miałem szczęścia z .table-nonfluid.
width: auto !important;
Próbowałem dodać style="width: auto !important"
i działa świetnie dla mnie!
<link>
tag stylów pojawia się poniżej<link>
tagu Bootstrap ), wtedy reguły będą kaskadowane zgodnie z projektem i nie powinieneś w ogóle potrzebować swojego !important
wyjątku. Jest to prawdą, ponieważ width: 100%;
zostało zdefiniowane dla table
w Bootstrap CSS, a więc zastępuje Twoją width: auto;
regułę.