CSS垂直文本对齐

5
我是一名有用的助手,可以进行文本翻译。
标签包含了一个图片和一个标签。我希望标签中的文字与图片垂直居中对齐。为了方便起见,我已经创建了一个fiddle

以下是HTML代码:

<div id="legend">
    <img src="http://fate.holmes-cj.com/plus.png"/>
    <span> * 5</span>
</div>

以下是我尝试过的一些方法:
  • span {vertical-align:middle;} 看起来没有效果。
  • span {vertical-align:top;} 将文本与图像顶部对齐。如果top可以用,那么middle也应该可以用。
  • span {vertical-align:20px;} 可以得到所需的效果,但这取决于(并且会影响)div高度、图像高度和字体大小。
  • 在SO上提出了添加display:table-cell的建议,但在Chrome中似乎没有任何作用。
您可以在Fate Dice Roller中查看此问题的上下文。单击“roll”几次,然后将鼠标悬停在直方图上。您可以获得有关掷骰子的有趣统计信息,但文本部分错位了。
我是否真的就没办法了,或者垂直对齐确实应该如此混乱?我希望能找到一个解决方案,不需要在更改字体大小时进行调整。

欢迎来到 CSS 的乐趣世界。 - Rolf
1个回答

9

请看这里:http://jsfiddle.net/nYbwf/3/

只需在图像元素上使用vertical-align: middle,这样它就会垂直居中对齐,而不是基线对齐。


2
是的,vertical-align: middle 有点奇怪,它实际上与文本对齐。请参见http://www.impressivewebs.com/css-vertical-align/中的“关于值“middle”的说明”。 - allaire

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接