Вертикальне вирівнювання в таблиці завантаження


123

Я намагаюся відобразити таблицю з 4 колонками, в одній з яких є зображення. Нижче наведено знімок: -введіть тут опис зображення

Я хочу вертикально вирівняти текст до центрального положення, але 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 недостатньо конкретний , щоб замінити правила CSS, визначені Bootstrap.

Спробуйте це:

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

У Boostrap 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тоді як другий варіант - це вибір елемента, який містить класи .tableAND .vertical-align.
голод

37

Станом на Bootstrap 4, тепер набагато простіше використовувати включені утиліти замість користувацьких CSS. Вам просто потрібно додати клас align-middle до елемента td:

<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є зайвим, додаючи способу більше специфіки, ніж потрібно.
голод

2

SCSS

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

використання

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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.