我发现了关于如何使用 css 垂直对齐内容的不同建议。但是,这些都无法处理我想要的。这是我想要的:
一般来说,我有一些文本应该填充一些空间的左半部分,而图片应该在空间的右半部分。
如果文本的高度小于图片,则文本和图片都应在空间顶部垂直对齐:
TextTextText PicturePicture
TextTextText PicturePicture
PicturePicture
如果文字的高度大于图片的高度,则文字应垂直对齐顶部,图片相对于文字居中。
TextTextText
TextTextText PicturePicture
TextTextText PicturePicture
TextTextText PicturePicture
TextTextText
这是我尝试的一种直接方式(没有图片的文本版本):
<div style="width: 100%">
<div style="width: 50%; display: inline-block; vertical-align: top;">
TextTextText <br>
TextTextText <br>
TextTextText
</div><div style="width: 50%; display: inline-block; vertical-align: middle;">
PicturePicture <br>
PicturePicture
</div>
</div>
然而,并没有达到我想要的效果。右边的内部 div(图片)只是在顶部而不是相对于文本的中间对齐。vertical-align: middle
设置和设置没有区别vertical-align: top
。然而,有趣的是,设置vertical-align: bottom
会有所不同。
外部 div 包含在某个宽度的其他元素中。但是,我不能用任何固定的度量来指定这个宽度,例如 px。相同宽度的两个内部 div 相同。
使内部 divs 表格单元格达到正确的垂直效果。但是,我不能使用display: table-cell
,因为我需要确保左侧内部 div 保持其宽度,即使右侧内部 div 可能具有向右溢出的内容,例如PicturePicturePicturePicturePicture...
. 这会导致左侧单元格的宽度缩小,这是我不想要的。
此外,我不知道内容的高度,因此使用固定高度的垂直对齐技巧都不起作用。
这似乎不是一个太罕见的任务,但我无法找到任何解决方案。是否有可能做到这一点?