css 我可以根据内嵌块的子级垂直对齐内嵌块吗?

ryoqjall  于 2023-02-20  发布在  其他
关注(0)|答案(1)|浏览(113)

为了说明这一点:

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的中间如何)。

wb1gzix0

wb1gzix01#

我不认为这是可能的只有CSS。如果你需要确切的这种行为,你可以做的最好的事情可能是计算所需的页边距顶部适当的列使用JavaScript。与正确的页边距第二行将出现垂直居中。
如果可以牺牲重叠行为,您可以将内容放置在行中而不是列中,并将第二行的内容垂直居中。

相关问题