使用vertical-align: middle
调整与文本高度的形象,你可以看到在我的屏幕转储,图像恰好在文本的顶部/底部(我加了2 gre en行来形象化)。
文字和上边框之间的“空”的空间,是一个特定的字体(这是针对不同的字体不同)如何安排其内部高度内的字符。
现在,由于某种原因,如果你想“打破”这个并调整例如字体内部高度的图像(如在你的问题中,在顶部/底部边界之间),你需要添加“边距“某处。
要让文本流尽可能正常,你可以:
- 几个像素保证金/填充添加到图像元素
- 增加像素的一些额外的线条与图像完全透光性好,
注意:根据您需要的完美程度,您需要计算您使用的字体的“边距”(它可能会/可能会不同),字体大小,并且您还可能需要检查在不同的操作系统上也是如此。
“强制文本/图片” 到中心,你可以:
- 使用
display: table
- 使用
display: flex
(在IE8/9工作)
(不要在IE8/9工作)
下面是使用 “填充” 和display: table
样品:
/* padding */
span img {
padding-bottom: 3px;
width: 20px;
vertical-align: middle;
}
/* display table */
div {
display: table-cell;
vertical-align: middle;
padding: 5px;
}
div span {
vertical-align: middle;
}
div img {
width: 20px;
vertical-align: middle;
}
<span style="padding: 5px;border: 1px solid black; background-color: #CCCCFF"> This one
<img
src="http://files.softicons.com/download/social-media-icons/stucco-social-media-icons-by-bradley-siefert/png/64x64/stucco-facebook.png"> use padding </span>
<br /><br />
<div style="border: 1px solid black; background-color: #CCCCFF">
<span>This one</span>
<img src="http://files.softicons.com/download/social-media-icons/stucco-social-media-icons-by-bradley-siefert/png/64x64/stucco-facebook.png">
<span>use display: table</span>
</div>
谢谢!最后,这在我看来是修复代码的最简单,最普通的方法。虽然不需要指定span.padding和img.margin,但默认值对我来说工作正常。 – Rop