You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

含图片的div内文本无法垂直居中的解决求助

垂直居中含图片和文本的div(非Flex方案)

问题核心

你遇到的情况是:包含图片和文本的div中,line-height在移除图片后能生效,带图片时失效,本质是图片作为inline元素默认以基线(底部)对齐,拉扯了容器内文本的基线位置,导致垂直居中失效;且块级元素的vertical-align属性本身不生效,你之前设置的vertical-align: center(正确值应为middle)对div无效。


解决方案1:给图片添加vertical-align: middle

这是最轻量化的修正方案,只需调整图片的垂直对齐方式,让它和文本以中线对齐:

.menubuttons{
    height:90px;
    background-color: red;
    font-size:30px;
    line-height:90px; /* 维持文本自身的垂直居中 */
}
.menubuttons img{
    height:50px;
    margin:20px;
    vertical-align: middle; /* 关键:让图片与文本中线对齐 */
}
<div class="menubuttons"><img src='https://cdn-icons-png.flaticon.com/512/2111/2111806.png'/>Stack Overflow</div>

解决方案2:使用Table-Cell布局

如果需要更通用的垂直居中逻辑(不依赖line-height,适配多行文本场景),可以将父元素设置为表格单元格模式:

.menubuttons{
    height:90px;
    background-color: red;
    font-size:30px;
    display: table-cell;
    vertical-align: middle;
    padding: 0 20px; /* 替代图片的margin,避免容器溢出 */
}
.menubuttons img{
    height:50px;
    margin-right: 20px; /* 给图片和文本添加间距 */
}

内容的提问来源于stack exchange,提问作者Daavee18

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.21 16:06:25