[英]How to align vertically a `inline-block` element inside a `<td>` element?
[英]How to vertically align text in an inline-block td?
我有一张桌子,上面满是tds。 我让它们显示:inline-block,以便它们与页面一起包裹。 我似乎无法使其中的文本垂直对齐:中间。 我将如何完成? 还是显示:内联阻止不是解决之道? 谢谢。
编辑这是代码。 抱歉,我是新来的。
<div>
<table class="disk-size-table center">
<tr class="disk-size-row">
<!-- <td class="disk-size-td draggable" data-disk-size="500">
500 GB <!-- I want the 500GB to be vertical align middle
</td> -->
</tr>
</table>
</div>
.disk-size-table {
border-spacing: 0;
}
.disk-size-td {
border: 1px solid black;
border-radius: 5px;
width: 60px;
height: 70px;
text-align: center;
vertical-align: middle;
padding: 0;
display: inline-block;
}
table.center {
margin-left: auto;
margin-right: auto;
}
我动态生成看起来像已注释过的tds。 我希望它们出现在垂直对齐的中间。 让我知道是否需要发布其他内容。
如果具有display: inline-block
并不是您的另一部分项目的要求,则可以简单地更改为display: float
,它将为您提供所需的样式。 如果执行此操作,则应注意一些功能上的区别,可以从以下两者之间的区别解释中更好地理解它们: http : //learnlayout.com/inline-block.html 。
如果将td保留为表格单元格,则可以使用以下命令:
<style>
td { display: table-cell; border: 1px solid red; max-width: 250px; }
.content, .vcenter { display: inline-block; vertical-align: middle; }
.content { border: 1px solid green; }
.vcenter { height: 100%; width: 0; }
</style>
<table><tr>
<td>
<div class="content">
500 GB
</div><div class="vcenter"></div>
</td>
<td>
<div class="content">
asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf
</div><div class="vcenter"></div>
</td>
</tr></table>
“ vcenter” div扩展到单元格的高度,从而使该行在单元格内很高。 然后,“内容” div可以使用vertical-align:middle在单元格中的行上垂直对齐。
如果将td更改为行内块,则在单元格上使用vertical-align:middle应该使单元格在行的垂直中心对齐:
<style>
td { display: inline-block; vertical-align: middle; border: 1px solid red; max-width: 250px; }
.content { border: 1px solid green; }
</style>
<table><tr>
<td>
<div class="content">
500 GB
</div>
</td>
<td>
<div class="content">
asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf
</div>
</td>
</tr></table>
但是,如果td需要多行,那么使用表就没有意义了,仅使用div更容易。
vertical-align: middle
适用于display: table-cell
CSS中的display: table-cell
/ HTML中的<td>
和display: inline-block;
。
由于您已经使用<table>
进行标记,因此不需要使用display: inline-block;
了。
要垂直对齐<td>
只需删除固定height: 70px;
并display: inline-block;
来自.disk-size-td {}
。 这是工作中的小提琴 。 如果所有物品的高度都固定,则没有东西可以垂直对齐:)
您可能需要添加一些padding: 10px 0;
(或您想要的任何填充)到<td>
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.