ブートストラップテーブルの垂直位置合わせ


123

4列のテーブルを表示しようとしています。1列は画像です。以下はスナップショットです:-ここに画像の説明を入力してください

テキストを垂直方向に中央揃えにしたいのですが、CSSが機能しないようです。ブートストラップレスポンシブテーブルを使用しました。私のコードが機能しない理由と、それを機能させるための正しい方法を教えてください。

以下はテーブルのコードです

CSS

img {
    height: 150px;
    width: 200px;
}
th, td {
    text-align: center;
    vertical-align: middle;
}

HTML

<table id="news" class="table table-striped table-responsive">
    <thead>
        <tr>
          <th>Name</th>
          <th>Email</th>
          <th>Phone</th>
          <th>Photo</th>
        </tr>
    </thead>
    <tbody>
        <?php
        $i=0;
        foreach ($result as $row) 
        { ?>
        <tr>
            <td>
                <?php echo 'Lorem Ispum'; ?>
            </td>
            <td>
                <?php echo 'lrem@ispum.com'; ?>
            </td>
            <td>
                <?php echo '9999999999'; ?>
            </td>
            <td>
                <?php echo '<img src="'.  base_url('files/images/test.jpg').'">'; ?>
            </td>
        </tr>

        <?php
        }
        ?>           
    </tbody>
</table>

回答:


251

あなたが提供したものに基づいて、CSSセレクターは、Bootstrapによって定義されたCSSルールをオーバーライドするほど具体的ではありません。

これを試して:

.table > tbody > tr > td {
     vertical-align: middle;
}

ではブートストラップ4、これはで達成することができる.align-middle 垂直配向ユーティリティクラス。

<td class="align-middle">Text</td>

8
@BarryFranklinそのテーブルにクラスを追加し、<table class="table vertical-align">そのクラスを使用してセレクターの特異性を少し高めtable.vertical-align > tbody > tr > td {}ます。また.table.vertical-alilgn > tbody > tr > td {}、最初のオプションよりも具体性が高い場合もあります。私は常にCSSセレクターの具体性をできる限り小さくしようとしています。最初のオプションはを持つテーブル要素を選択.vertical-alignし、2番目のオプションは.tableAND .vertical-alignクラスを持つ要素を選択していることに注意してください。
hungerstar 2016年

37

Bootstrap 4以降、カスタムCSSの代わりに付属のユーティリティを使用する方がはるかに簡単になりました。クラスalign-middleをtd-element に追加するだけです:

<table>
  <tbody>
    <tr>
      <td class="align-baseline">baseline</td>
      <td class="align-top">top</td>
      <td class="align-middle">middle</td>
      <td class="align-bottom">bottom</td>
      <td class="align-text-top">text-top</td>
      <td class="align-text-bottom">text-bottom</td>
    </tr>
  </tbody>
</table>

11

私にとっては<td class="align-middle" >${element.imie}</td>動作します。Bootstrap v4.0.0-betaを使用しています。


4

以下は機能しているようです:

table td {
  vertical-align: middle !important;
}

同様に、特定のテーブルに適用できます。

#some_table td {
  vertical-align: middle !important;
}

7
!importantやり過ぎです。必要以上に具体性を追加します。
hungerstar 2017

2

SCSS

.table-vcenter {
    td,
    th {
        vertical-align: middle;
    }
}

使用する

<table class="table table-vcenter">
</table>

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