Perataan vertikal dalam tabel bootstrap


123

Saya mencoba menampilkan tabel dengan 4 kolom, salah satunya adalah gambar. Di bawah ini adalah cuplikannya: -masukkan deskripsi gambar di sini

Saya ingin meratakan teks secara vertikal ke posisi tengah, tetapi entah bagaimana css sepertinya tidak berfungsi. Saya telah menggunakan tabel responsif bootstrap. Saya ingin tahu mengapa kode saya tidak berfungsi dan apa metode yang benar untuk membuatnya berfungsi.

berikut adalah kode untuk tabel tersebut

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>

Jawaban:


251

Berdasarkan apa yang Anda berikan, pemilih CSS Anda tidak cukup spesifik untuk menimpa aturan CSS yang ditentukan oleh Bootstrap.

Coba ini:

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

Di Boostrap 4 , ini dapat dicapai dengan kelas utilitas .align-middle Vertical Alignment .

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

8
@BarryFranklin Tambahkan kelas ke tabel itu <table class="table vertical-align">, dan sedikit tingkatkan kekhususan selektor menggunakan kelas itu table.vertical-align > tbody > tr > td {},. Anda juga dapat melakukannya .table.vertical-alilgn > tbody > tr > td {}meskipun memiliki kekhususan yang lebih tinggi daripada opsi pertama. Saya selalu mencoba untuk meningkatkan kekhususan dalam pemilih CSS saya sesedikit mungkin jika saya bisa. Perhatikan bahwa opsi pertama adalah memilih elemen tabel yang dimilikinya .vertical-alignsedangkan opsi kedua memilih elemen yang memiliki kelas .tableAND .vertical-align.
hungerstar

37

Pada Bootstrap 4 ini sekarang jauh lebih mudah menggunakan utilitas yang disertakan daripada CSS khusus. Anda hanya perlu menambahkan class align-middle ke 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

Bagi saya <td class="align-middle" >${element.imie}</td>bekerja. Saya menggunakan Bootstrap v4.0.0-beta.


4

Berikut ini tampaknya berfungsi:

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

Anda dapat melamar ke tabel tertentu juga seperti ini:

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

7
!importantberlebihan, menambahkan lebih banyak kekhususan daripada yang diperlukan.
hungerstar

2

SCSS

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

menggunakan

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

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.