부트 스트랩 테이블에서 수직 정렬


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 선택기를 기반으로 할 때 구체적 이지 않습니다. Bootstrap에서 정의한 CSS 규칙을 재정의 할만큼 .

이 시도:

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

Boostrap 4 에서는 .align-middle Vertical Alignment 유틸리티 클래스를 사용하여이 작업을 수행 할 수 있습니다 .

<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클래스 가있는 요소를 선택하는 것 입니다.
hungerstar

37

Bootstrap 4부터는 사용자 정의 CSS 대신 포함 된 유틸리티 를 사용하는 것이 훨씬 쉬워 졌습니다. td-element에 align-middle 클래스를 추가하기 만하면됩니다 .

<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

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.