【问题标题】:Fixed Header Flex Table - Header Vertical Align固定页眉弹性表 - 页眉垂直对齐
【发布时间】:2018-02-12 23:00:40
【问题描述】:

jsFiddle - https://jsfiddle.net/24by5tmv/1/

我有一个简单的弹性表格,它可以固定标题并滚动表格正文,但我想垂直对齐每个单元格内的内容(标题和正文)的中心/中间。

将单元格设置为vertical-align: middle; 通常可以解决问题,但似乎使用 flexbox 会阻止垂直对齐单元格内容。

我不怀疑我忽略了一些东西,而且可能是一些简单的东西,但是有没有人有任何解决这个问题的想法?

非常感谢:)

【问题讨论】:

  • vertical-align: middle 适用于 inline-block 元素,对于弹性项目,使用自动边距,例如margin: auto 0; ... jsfiddle.net/24by5tmv/2

标签: html css flexbox


【解决方案1】:

您也可以使th,td 元素弯曲并在其中应用对齐方式:

table.flex-table tr td,
table.flex-table tr th {
  display: flex;
  flex: 1;
  align-items:center;
  justify-content:center;
}

完整代码

.panel-body {
  height: 300px;
}

table {
  border-top: 1px solid black;    /* Just to Highlight Top of Table */
}
table thead tr {
  height: 5em;    /* Fixed Row Height */
}

/* Flex Table */
table.flex-table {
  display: flex;
  flex-direction: column;
  height: 100%;
}
table.flex-table thead,
table.flex-table tbody {
  display: block;
}
table.flex-table thead {
  margin-right: 0px;
}
table.flex-table tbody {
  flex: 1;
  overflow-y: scroll;
}
table.flex-table tr {
  width: 100%;
  display: flex;
}
table.flex-table tr td,
table.flex-table tr th {
  display: flex;
  flex: 1;
  align-items:center;
  justify-content:center;
}
<link rel="stylesheet" type="text/css" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<div class="container">
  <br>
  <div class="row">
    <div class="col-sm-12">    
      <div class="panel panel-default">
        <div class="panel-body">
          <table class="table table-striped flex-table">
            <thead>
              <tr>
                <th>Test</th>
                <th>Test</th>
                <th>Test</th>
                <th>Test</th>
                <th>Test</th>
                <th>Test</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td>Something</td>
                <td>Something</td>
                <td>Something</td>
                <td>Something</td>
                <td>Something</td>
                <td>Something</td>
              </tr>
              <tr>
                <td>Something</td>
                <td>Something</td>
                <td>Something</td>
                <td>Something</td>
                <td>Something</td>
                <td>Something</td>
              </tr>
              <tr>
                <td>Something</td>
                <td>Something</td>
                <td>Something</td>
                <td>Something</td>
                <td>Something</td>
                <td>Something</td>
              </tr>
              <tr>
                <td>Something</td>
                <td>Something</td>
                <td>Something</td>
                <td>Something</td>
                <td>Something</td>
                <td>Something</td>
              </tr>
              <tr>
                <td>Something</td>
                <td>Something</td>
                <td>Something</td>
                <td>Something</td>
                <td>Something</td>
                <td>Something</td>
              </tr>
              <tr>
                <td>Something</td>
                <td>Something</td>
                <td>Something</td>
                <td>Something</td>
                <td>Something</td>
                <td>Something</td>
              </tr>
              <tr>
                <td>Something</td>
                <td>Something</td>
                <td>Something</td>
                <td>Something</td>
                <td>Something</td>
                <td>Something</td>
              </tr>
              <tr>
                <td>Something</td>
                <td>Something</td>
                <td>Something</td>
                <td>Something</td>
                <td>Something</td>
                <td>Something</td>
              </tr>
              <tr>
                <td>Something</td>
                <td>Something</td>
                <td>Something</td>
                <td>Something</td>
                <td>Something</td>
                <td>Something</td>
              </tr>
              <tr>
                <td>Something</td>
                <td>Something</td>
                <td>Something</td>
                <td>Something</td>
                <td>Something</td>
                <td>Something</td>
              </tr>
              <tr>
                <td>Something</td>
                <td>Something</td>
                <td>Something</td>
                <td>Something</td>
                <td>Something</td>
                <td>Something</td>
              </tr>
            </tbody>
          </table>
        </div>
      </div>      
    </div>
  </div>
</div>

【讨论】:

  • 好吧,我觉得有点傻!知道这很简单,非常感谢:D
  • @DeltaSierra 并没有那样做 ;) 你的问题是 td, th 已经占满高度,所以你不能再对齐它们,但你可以对齐它们的内容
猜你喜欢
  • 1970-01-01
  • 2012-08-15
  • 2012-01-09
  • 1970-01-01
  • 2018-02-13
  • 2016-01-17
  • 2012-09-20
  • 2014-11-05
相关资源
最近更新 更多