【发布时间】:2011-09-25 07:49:16
【问题描述】:
我正在尝试垂直对齐图像和文本:
+--------------+ -- 视口 |文字文字文字| | +-----+ 文字 文字 文字 | | |图片|文字文字文字| | +-----+ 文字 文字 文字 | |文字文字文字| +--------------+如果文本没有被换行,这可以正常工作。如果文本比视口宽度宽,它就不再起作用了。我认为这是由于设置 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-tables 或 css-tables (display: table and display: table-cell),但这不是一个选项,因为它必须适用于所有类型的浏览器 (桌面和移动)。
对此,我不知道任何尺寸。既不是图像也不是文本。所以我不能使用任何“边距或填充解决方案”。
编辑:我创建了一个demo-fiddle(基于 NGLN 创建的,顺便说一句:谢谢!)显示我正在寻找的结果。但我尝试在不使用 display: table-cell 的情况下存档它...有什么想法吗?
【问题讨论】:
-
什么浏览器不支持html-tables?
-
视口大小是否固定?图片是固定大小的吗?
-
@Kraz:在某处我读到一些移动浏览器在显示方面存在问题:table-cell。而且我不能使用 html-tables,因为有一些其他的限制,在这里详细讨论这些限制很复杂。
-
@NGLN:视口大小不固定,图像大小也不固定。顺便说一句:视口只是一个 div 容器,其宽度等于移动设备的显示宽度。
标签: html css image multiline vertical-alignment