Twitter Bootstrapのテーブルでテキストを中央揃え


114

何らかの理由で、テーブル内のテキストはまだ中央揃えされていません。どうして?テキストをテーブルの中央に配置するにはどうすればよいですか?

それを本当に明確にするために:たとえば、「Lorem」は4つの「1」の真ん中に座って欲しい。

@import url('http://twitter.github.com/bootstrap/assets/css/bootstrap.css');
table,
thead,
tr,
tbody,
th,
td {
  text-align: center;
}
<table class="table">
  <thead>
    <tr>
      <th>1</th>
      <th>1</th>
      <th>1</th>
      <th>1</th>
      <th>2</th>
      <th>2</th>
      <th>2</th>
      <th>2</th>
      <th>3</th>
      <th>3</th>
      <th>3</th>
      <th>3</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td colspan="4">Lorem</td>
      <td colspan="4">ipsum</td>
      <td colspan="4">dolor</td>
    </tr>
  </tbody>
</table>

JSFiddle

回答:


149

.table tdテキスト整列はむしろ中央より左に設定されています。

これを追加すると、すべてのが中央に配置されますtd

.table td {
   text-align: center;   
}

@import url('https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css');
table,
thead,
tr,
tbody,
th,
td {
  text-align: center;
}

.table td {
  text-align: center;
}
<table class="table">
  <thead>
    <tr>
      <th>1</th>
      <th>1</th>
      <th>1</th>
      <th>1</th>
      <th>2</th>
      <th>2</th>
      <th>2</th>
      <th>2</th>
      <th>3</th>
      <th>3</th>
      <th>3</th>
      <th>3</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td colspan="4">Lorem</td>
      <td colspan="4">ipsum</td>
      <td colspan="4">dolor</td>
    </tr>
  </tbody>
</table>

JSFIDDLEを更新


48
それ以降のバージョンでは、このためのテキストセンタークラスがあります。
MGP

9
注意:.table td {text-align:center; }はすべてのTDを中央に配置します
rbp

9
@ xr09はい、.text-centerありますが、の特異性.table tdはまだそれを打ち負かします。これが、ブートストラップが.table
Sinethetaの

6
を追加.texter-centerする<table>と、すべての行が中央揃えになります。
chaim 2014

@chaimコメントは回答として投稿してください。bootstrap-vue 2.0.1で
作業

177

Bootstrap 3(3.0.3)では"text-center"td要素へのクラスの追加はそのままで機能します。

つまりsome text、テーブルセル内の次の中心です。

<td class="text-center">some text</td>

3
.table tdスタイル全体を変更するよりも、このソリューションが好きでした。
Stuart

クラス「text-center」をテーブル要素に追加することもできます。
shad0wec 2017

これが本当の答えです。
Nyxynyx 2018年

33

迅速かつクリーンなmodのためのhtmlとCssの最適な組み合わせは次のとおりです。

<table class="table text-center">
<thead>
        <tr>                    
        <th class="text-center">Uno</th>
        <th class="text-center">Due</th>
        <th class="text-center">Tre</th>
        <th class="text-center">Quattro</th>
    </tr>
</thead>
<tbody>
    <tr>
        <td>1</td>
        <td>2</td>
        <td>3</td>
        <td>4</td>
    </tr>
</tbody>
</table>

<table>initタグを閉じて、必要な場所にコピーします:)役立つことを願っています。

ps Bootstrap v3.2.0


1
この質問には既に回答がありますが、新しい回答を投稿する意味はありません!!
Pragnesh Ghodaシ

29

セル内に「text-center」のクラスを持つdivを追加することにより、CSSを変更せずにtdを整列させることができます。

    <td>
        <div class="text-center">
            My centered text
        </div>
    </td>

1
誰が定義しましたclassか?
Amol M Kulkarni 2013年

6
私の知る限りでは、Bootstrap 2.3では、td {text-align:left}物事を中央に配置するための追加の試行がオーバーライドされます。この方法で試したところ、成功しませんでした。
Jason Lowenthal 2013

12
<td class="text-center">

そしてbootstrap.cssの.text-centerを修正します:

.text-center {
    text-align: center !important;
}

3
bootstrap.cssを直接変更したくないと思います。
Mike Cole

3
bootstrap.cssの.text-centerを修正する必要はありませんでした。これはそれなしで機能しました。
user573335 2013年

6

私は同じ問題を抱えていましたが、使用せずにそれを解決するより良い方法!importantは、CSSで以下を定義することでした:

table th.text-center, table td.text-center { 
    text-align: center;
}

これにより、text-centerクラスの特定性がテーブルで正しく機能します。


6

一度だけであれば、スタイルシートを変更しないでください。その特定のものを編集してくださいtd

<td style="text-align: center;">

乾杯


4

Bootstrapの主な機能の1つは、!importantタグの使用を軽減することです。上記の答えを使用すると、目的が無効になります。独自のcssファイルのクラスを変更し、boostrap cssをインクルードした後にリンクすることで、ブートストラップを簡単にカスタマイズできます。



0

次の<tr>ようなカスタムクラスを指定するだけです。

<tr class="custom_centered">
  <td>1</td>
  <td>2</td>
  <td>3</td>
</tr>

そして、CSSにカスタムクラスの<td>内部にあるs のみを選択さ<tr>せます。

tr.custom_centered td {
  text-align: center;
}

このように、他のテーブルをオーバーライドしたり、ブートストラップ基本クラスをオーバーライドしたりするリスクはありません(私の前任者が提案したように)。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.