为什么不垂直对齐:中间工作?然而,垂直对齐:顶部确实有效。
跨度{垂直对齐:中间;}<div><img src=“https://via.placeholder.com/30“alt=”小img“/><span>不起作用</span></div>
为什么不垂直对齐:中间工作?然而,垂直对齐:顶部确实有效。
跨度{垂直对齐:中间;}<div><img src=“https://via.placeholder.com/30“alt=”小img“/><span>不起作用</span></div>
当前回答
写下这些跨度财产
span{
display:inline-block;
vertical-align:middle;
}
使用显示:内联块;当您使用vertical-align属性时。这些是关联的财产
其他回答
2022年,浏览器支持率达到96%,我很惊讶没有人建议使用网格布局。
在本JSFiddle中,3行是实现OP目标所需的全部内容(但提供了多条路线以供比较):
div {
display: grid;
grid-template-columns: min-content max-content;
align-items: center
}
一个额外的UI细节将包括可选的gap属性的使用,该属性允许调整父网格容器(div)中每个网格项之间的空间。
网格布局的优势
轻松垂直和水平对齐网格项网格项之间的空间调制任何大小的图像(使用最小内容)和文本长度(使用最大内容的一行或使用最小内容的换行(未在fiddle中显示))都可以工作-无需在CSS中硬编码图像尺寸(两种用法都在JSFiddle中演示)现代方法
网格布局的缺点
较旧的浏览器支持更具挑战性网格布局通常需要更有经验的开发人员来正确实现,而不是像块/内联块显示那样简单
将div更改为flex容器:
div { display: flex; }
方法1:
div { align-items: center; }
DEMO
方法2:
div * { margin: auto 0; }
DEMO
尝试在img上使用不同的宽度和高度值,在跨距上尝试不同的字体大小值,您将看到它们始终保持在容器的中间。
使用行高度:30px作为跨度,以便文本与图像对齐:
<div>
<img style="width:30px; height:30px;">
<span style="line-height:30px;">Doesn't work.</span>
</div>
可以使用display属性将图像设置为内联元素
<div><img style=“vertical align:middle;display:inline;”src=“https://placehold.it/60x60"><span style=“vertical align:middle;display:inline;”>有效</span></div>
你可能想要这样:
<div>
<img style="width:30px; height:30px;">
<span style="vertical-align:50%; line-height:30px;">Didn't work.</span>
</div>
正如其他人所建议的,尝试在图像上垂直对齐:
<div>
<img style="width:30px; height:30px; vertical-align:middle;">
<span>Didn't work.</span>
</div>
CSS并不烦人。你只是没有阅读文档;P