我试图竖直对齐一张图片和一段文本:
+-------------------------+ -- 视口 | 文本 文本 文本 | | +-----+ 文本 文本 文本 | | | 图片 | 文本 文本 文本 | | +-----+ 文本 文本 文本 | | 文本 文本 文本 | +-------------------------+
如果文本没有换行,这个方法可以正常工作。但是当文本宽度大于视口宽度时,就会出现问题。我认为这是由于设置了display: inline-block所引起的:
<a href="#">
<img style="display: inline-block; vertical-align: middle; margin-right: 8px;" src="images/arrow_black.png" />
<span style="display: inline-block; vertical-align: middle;">
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonum eirmod tempor invidunt ut labore et dolore
</span>
</a>
结果如下:
+---------------------------------------------------------------------+ -- 视口 | | | +-----+ | | |图片| 文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本文本 | | +-----+ | | | +---------------------------------------------------------------------+
+-------------------------+ -- 视口 | +-----+ 文本文本文本文本 | | |图片| 文本文本文本文本 | | +-----+ 文本文本文本文本 | | 文本文本文本文本文本文本 | +-------------------------+
如果我尝试浮动这些元素,那么图片将始终在顶部,但不会垂直居中于文本中间:
<a href="#">
<img style="display: block; vertical-align: middle; margin-right: 8px; float: left;" src="/images/arrow_black.png" />
<span style="display: block; overflow: auto;">
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.
</span>
</a>
结果如下:
+-------------------------+ -- 视口 | +-----+ 文字 文字 文字 | | |图片| 文字 文字 文字 | | +-----+ 文字 文字 文字 | | 文字 文字 文字 | | 文字 文字 文字 | | 文字 文字 文字 | +-------------------------+
我看到了几种解决方案,使用html表格或css表格(display: table和display: table-cell),但这不是一个选择,因为它必须适用于所有类型的浏览器(桌面和移动设备)。
此外,我不知道任何尺寸。既不是图像的大小也不是文本的大小。所以我不能使用任何“margin-或padding-Solution”。
编辑:我创建了一个演示fiddle(基于NGLN创建的),展示了我想要的结果。但我试图在不使用display: table-cell的情况下实现这一点... 有什么想法吗?