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

HTML/CSS卡片中图标与文本垂直对齐问题求助

如何让图标与文本在同一行垂直居中对齐?

我用HTML和CSS制作卡片,卡片底部设有两个图标,分别居左和居右。图标显示正常,但配套文本无法与图标垂直居中对齐。

现有代码

HTML

<div class="info-content">
    <div class="info left">
        <img src="./img/icon-ethereum.svg" alt=""><span class="text-info">0.041 ETH</span>
    </div>
    <div class="info right">
        <img src="./img/icon-clock.svg" alt=""><span class="text-info">3 days left</span>
    </div>
</div>

CSS

.info-content {
    display: flex;
    margin: 0px;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: center;
    font-size: .7rem;
}

.info {
    vertical-align: middle;
    margin-bottom: 5px;
}

解决方案

方法1:给.info容器启用Flex布局

这是最通用的方案,把每个.info变成flex容器,通过align-items: center让内部元素自动垂直居中,还能顺便给图标和文本加间距。

修改后的CSS:

.info-content {
    display: flex;
    margin: 0px;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: center;
    font-size: .7rem;
}

.info {
    display: flex;
    align-items: center;
    gap: 6px; /* 可选:调整图标与文本的间距 */
    margin-bottom: 5px;
}

方法2:直接给图标设置vertical-align: middle

如果不想用Flex,直接给图标添加vertical-align: middle属性,让它和文本的基线对齐,就能实现居中。

修改后的CSS:

.info-content {
    display: flex;
    margin: 0px;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: center;
    font-size: .7rem;
}

.info {
    margin-bottom: 5px;
}

.info img {
    vertical-align: middle;
}

方法3:用行高统一对齐(适合固定高度的图标)

如果图标高度固定,给.info设置和图标高度一致的行高,再配合图标垂直对齐,也能达到效果。假设图标高度为16px:

.info-content {
    display: flex;
    margin: 0px;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: center;
    font-size: .7rem;
}

.info {
    line-height: 16px;
    margin-bottom: 5px;
}

.info img {
    height: 16px;
    vertical-align: middle;
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 16:23:16