Twitterブートストラップテーブルの幅が常に100%になるのはなぜですか?


148

次のマークアップを想定します。

<table class="table table-bordered" align="center"> 

セルの数に関係なく、テーブルの幅は常に100%です。なんで?


3
親の幅を効率的に使用するため。これがグリッドシステムの機能です。
Vishal

テーブルの幅はどのくらいにしますか?
Andres Ilich

1
普通の表と同じように、セルの数に依存して
ほしい

1
スパンを介してdiv幅などのセル幅を設定する方法を検索する人は、この回答を
alexche8

回答:


228

ブートストラップ内のすべてのテーブルはコンテナに応じて拡大し.span*ます。これは、選択したグリッド要素内にテーブルを配置することで簡単に実行できます。このプロパティを削除する場合は、独自のテーブルクラスを作成して、内容を展開するテーブルに追加するだけです。

.table-nonfluid {
   width: auto !important;
}

このクラスを独自のスタイルシート内に追加し、次のように単純にテーブルのコンテナに追加できます。

<table class="table table-nonfluid"> ... </table>

このようにして、変更がブートストラップスタイルシート自体に影響を与えることはありません(ドキュメントの他の場所に流動的なテーブルが必要になる場合があります)。


1
テーブルをspan *タグ内に配置する場合、テーブルを中央に配置するには、offset *も含めますか?
HPWD 2013年

@dlackeyはい、テーブルをクラスでオフセットして中央揃えにすることができ.span*ます。クラスをテーブルに追加して、幅を指定することもできます。
Andres Ilich 2013年

2
ブートストラップ3と少なくともそれだけで追加した後に私のために働いた!importantwidth: auto
geekQ

テーブルにはbootstarpのスパンクラスを使用するか、.spanクラスのスタイルを手動で指定する必要があります
Jot

1
警告。.table-sensitiveおよび.table-borderedと組み合わせて使用​​する場合は注意してください。ボーダーは、画面幅767px未満の場合に.table-sensitiveコンテナーに適用されます。(ブートストラップ3.x)
Stuart

31

<table style="width: auto;" ...正常に動作します。Chrome 38、IE 11、Firefox 34でテスト済み。

jsfiddle:http ://jsfiddle.net/rpaul/taqodr8o/



13

回答#1:

なぜそれと戦うのですか?なぜブートストラップグリッドを使用してテーブルの幅を単純に制御しないのですか?これはBootstrap 3マークアップです。

<div class="row">
    <div class="col-sm-6">
        <table></table>
    </div>
</div>

これにより、要素の幅の半分(12のうち6)のテーブルが作成されます。

他の回答のようにインラインスタイルを使用することもありますが、お勧めしません。

回答#2:

ブートストラップ4を使用している場合は、次のような幅のヘルパークラスがいくつかあります。

w-25, w-50, w-75, and w-100

これがドキュメントです:https : //getbootstrap.com/docs/4.0/utilities/sizing/


2
これは、これまでで最も簡単な解決策であると受け入れ答えなければなりません
ジェフ・ブラウン

12

私は同じ問題を抱えていました、私はテーブルを修正してから私のtd幅を指定しました。あなたが持っているなら、あなたもそれらを行うことができます。

<style>
table {
table-layout: fixed;
word-wrap: break-word;
}
</style>

<td width="10%" /td>

.table-nonfluidには運がありませんでした。


1
試してみるwidth: auto !important;
レオ14

回避できます!important(これは悪い習慣です)。以下の回答に対するコメントを参照してください。
Ollie Bennett

3

追加しようとしましたが、うまくいきましstyle="width: auto !important"た!


1
Bootstrap CSSの後にカスタムCSSが表示されることを確認した場合(たとえば、カスタムスタイル<link>タグがBootstrap タグのに表示される場合<link>)、ルールは設計どおりにカスケードされ、!important例外を使用する必要はまったくありません。これは、Bootstrap CSSwidth: 100%;定義されtable、ルールに取って代わるためです。width: auto;
Ollie Bennett

実際には答えではなく、ほとんどの人が読んでいる現在受け入れられている答えを編集した方がよい(私は今それを編集した)
Iulian Onofrei 2015
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.