为了说明这一点:
div {
border: 1px solid #000;
}
.ib {
display: inline-block;
}
.vm {
vertical-align: middle;
}
<div class="container">
<div class="col ib vm">
<div>aaa<br>a</div>
<div>b<br><br>b</div>
</div>
<div class="col ib vm">
<div>a<br><br><br><br>a</div>
<div>b<br><br>bbbbbbbbbb</div>
</div>
</div>
这里我们有两个内联块(即.col
),它们在中间垂直对齐。问题是:
- 我可以使
.col
与内部子节点的中间垂直对齐吗?**(例如,包含"b"的子节点。)
- 我可以使
还是必须使用JavaScript计算位置并应用transform
?
由于每个.col
可能包含多个子节点,并且我有许多这样的.col
,因此不使用JavaScript的实现将非常好。
任何解决方案与网格,或弯曲,布局是可以的。
所需的结果如下图所示:
应垂直移动.col
,使其第二个子对象的中间对齐(无论两个.col
的中间如何)。
1条答案
按热度按时间wb1gzix01#
我不认为这是可能的只有CSS。如果你需要确切的这种行为,你可以做的最好的事情可能是计算所需的页边距顶部适当的列使用JavaScript。与正确的页边距第二行将出现垂直居中。
如果可以牺牲重叠行为,您可以将内容放置在行中而不是列中,并将第二行的内容垂直居中。