【问题标题】:Vertical align in bootstrap table引导表中的垂直对齐
【发布时间】:2015-03-01 01:47:55
【问题描述】:

我正在尝试显示一个包含 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>

【问题讨论】:

    标签: html css twitter-bootstrap


    【解决方案1】:

    根据您提供的 CSS 选择器,specific 不足以覆盖 Bootstrap 定义的 CSS 规则。

    试试这个:

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

    Boostrap 4 和 5 中,这可以通过 .align-middle Vertical Alignment 实用程序类来实现。

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

    【讨论】:

    • @BarryFranklin 向该表添加一个类&lt;table class="table vertical-align"&gt;,并稍微增加使用该类table.vertical-align &gt; tbody &gt; tr &gt; td {} 的选择器的特异性。您也可以使用.table.vertical-alilgn &gt; tbody &gt; tr &gt; td {},尽管它比第一个选项具有更高的特异性。如果可以的话,我总是尝试尽可能少地增加我的 CSS 选择器的特异性。请注意,第一个选项是选择具有.vertical-align 的表格元素,而第二个选项是选择具有.table AND .vertical-align 类的元素。
    【解决方案2】:

    以下似乎有效:

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

    您也可以像这样应用到特定表:

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

    【讨论】:

    • !important 太过分了,增加了不必要的特异性。
    【解决方案3】:

    对我来说&lt;td class="align-middle" &gt;${element.imie}&lt;/td&gt; 有效。我正在使用 Bootstrap v4.0.0-beta 。

    【讨论】:

      【解决方案4】:

      从 Bootstrap 4 开始,现在使用包含的 utilities 而不是自定义 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>
      

      【讨论】:

        【解决方案5】:

        SCSS

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

        使用

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

        【讨论】:

          【解决方案6】:

          试试:

          .table thead th{
             vertical-align:middle;
          }
          

          【讨论】:

            【解决方案7】:

            vetrical-align: middle 出于某种原因对我不起作用(并且正在应用中)。我用这个:

            table.vertical-align > tbody > tr > td {
              display: flex;
              align-items: center;
            }
            

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 2012-08-16
              • 2016-02-28
              • 2015-11-09
              • 2013-09-27
              • 1970-01-01
              • 1970-01-01
              • 2018-11-17
              • 2017-05-13
              相关资源
              最近更新 更多