Önyükleme tablosunda dikey hizalama


123

Biri resim olan 4 sütunlu bir tablo görüntülemeye çalışıyorum. Anlık görüntü aşağıdadır: -görüntü açıklamasını buraya girin

Metni dikey olarak orta konuma hizalamak istiyorum, ancak bir şekilde css çalışmıyor. Bootstrap duyarlı tablolarını kullandım. Kodumun neden çalışmadığını ve çalışmasını sağlamak için doğru yöntemin ne olduğunu bilmek istiyorum.

tablo için kod aşağıdadır

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>

Yanıtlar:


252

Sağladığınız şeye bağlı olarak CSS seçiciniz belirli değildir Bootstrap tarafından tanımlanan CSS kurallarını geçersiz kılmak için yeterince .

Bunu dene:

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

Gelen Boostrap 4 , bu elde edilebilir .align-middle Dikey Hizalama yardımcı sınıfı.

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

8
@BarryFranklin Bu tabloya bir sınıf ekleyin <table class="table vertical-align">ve bu sınıfı kullanarak seçicinin özgüllüğünü biraz artırın table.vertical-align > tbody > tr > td {}. .table.vertical-alilgn > tbody > tr > td {}İlk seçenekten daha yüksek bir özgüllüğü olsa da yapabilirsiniz . CSS seçicilerimdeki özgüllüğü her zaman mümkün olduğunca az artırmaya çalışırım. İlk seçeneğin, .vertical-alignikinci seçenek .tableAND .vertical-alignsınıflarına sahip bir öğeyi seçerken sahip olan bir tablo öğesini seçtiğine dikkat edin .
açlık yıldızı

37

Bootstrap 4 itibariyle bu, özel CSS yerine dahil edilen yardımcı programları kullanmak artık çok daha kolay . Td elemanına hizalama orta sınıfını eklemeniz yeterlidir :

<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

Benim için <td class="align-middle" >${element.imie}</td>çalışıyor. Bootstrap v4.0.0-beta kullanıyorum.


4

Aşağıdakiler işe yarıyor gibi görünüyor:

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

Bunun gibi belirli bir masaya da başvurabilirsiniz:

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

7
!importantgereğinden fazla özgüllük ekleyerek aşırıdır.
hungerstar

2

SCSS

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

kullanım

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

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.