表格不会使用 flexbox 垂直居中 [重复]

Posted

技术标签:

【中文标题】表格不会使用 flexbox 垂直居中 [重复]【英文标题】:Table won't vertically center using flexbox [duplicate] 【发布时间】:2019-09-23 09:53:15 【问题描述】:

我正在尝试使用 flexbox 属性使表格垂直居中,但它不会居中。

我尝试过调整容器/子项的高度,但问题仍然存在。我还尝试了其他垂直居中方法,例如 display: table; / display:table-cellpositioning relative 的父级和 top: 50% ,left: 50%; 的绝对子级

.tableWrap 
  display: flex;
  justify-content: center;
  align-items: center;


table 
  width: 65%;
  table-layout: fixed;
  font-family: arial, sans-serif;
  border-collapse: collapse;
  border: 1px solid #dddddd;
  word-wrap: break-word;


td,
th 
  border: 1px solid #dddddd;
  padding: 8px;
  text-align: center;


tr:nth-child(even) 
  background-color: #dddddd;


table ul 
  margin: 0;
  padding: 0;
  list-style: none;
<!DOCTYPE html>
<html>

<head>
  <style>
  </style>
</head>

<body>
  <main>

    <div class="tableWrap">

      <table>
        <tr>
          <th>Title</th>
        </tr>
        <tr>
          <td>Test0:</td>
        </tr>

        <tr>
          <td>Test1</td>
        </tr>
        <tr>
          <td>Test2:</td>
        </tr>

        <tr>
          <td>
            <ul>
              <li>Test3.</li>
            </ul>
          </td>
        </tr>
      </table>

    </div>

  </main>
</body>

</html>

【问题讨论】:

flexbox 容器 (tableWrap) 仅与table 一样高 - 给它一个高度(比如 100vh),您可以看到垂直对齐。见jsfiddle.net/bchnt5os 哦,我现在明白了。成功了,谢谢! ***.com/a/46546152/3597276 【参考方案1】:

问题在于 body、html 和 .tableWrap 的高度。它们会自动降低高度。根据您的情况,解决方案是:

html,
body,
main,
.tableWrap
  height: 100%;

【讨论】:

以上是关于表格不会使用 flexbox 垂直居中 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

Flexbox:如何垂直居中[重复]

如何使用 flexbox 垂直居中 div [重复]

Flexbox - 垂直居中文本[重复]

垂直和水平居中的flexbox [重复]

使用flexbox在链接中垂直对齐文本[重复]

还不会CSS水平垂直居中?这里有12种方案