【发布时间】:2017-03-06 07:04:10
【问题描述】:
有一个简单的问题,我需要一个表格单元格内的显示块元素来获取单元格的全部可用高度和宽度,同时文本也垂直对齐。
ul {
background: yellow;
display: table;
table-layout: fixed;
width: 100%;
}
li {
display: table-cell;
text-align: center;
vertical-align: middle;
height: 48px;
}
a {
display: block;
width: 100%;
height: 48px;
}
a:hover {
background: red
}
<ul>
<li>
<a href="#">Item1</a>
</li>
<li>
<a href="#">Item2</a>
</li>
<li>
<a href="#">Item3</a>
</li>
<li>
<a href="#">Item4</a>
</li>
<li>
<a href="#">Item5</a>
</li>
</ul>
所有的东西都需要响应,所以如果文本下降到 2 行并且列表元素的数量是灵活的,所以没有行高修复,这就是我使用 display:table 的原因。但是,如果可以实现这一点,对另一种方法感到满意,由于某种原因,我无法弄清楚如何在这种情况下垂直对齐文本
【问题讨论】:
-
如果你在 li 标签中有固定的高度,你可以使用`line-heigth:48px`作为标签
-
如前所述,如果文本较长且落在 2 行上,这不是解决方案