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

CSS实现div容器内两行文本水平垂直居中的正确方法

问题根因

你在父容器.yellowbox上设置了和容器高度相等的line-height: 77px,该属性会被内部子元素继承,导致每个子div的行高都为77px,两行文本总高度远超父容器77px的高度限制,因此年份无法正常排布在月份下方。

补充:等于容器高度的行高仅适用于单行文本垂直居中的场景,多行文本使用该写法必然出现布局错乱。

修复代码

直接替换原有样式即可,使用flex布局实现容器内多行内容的居中对齐,不需要依赖行高做垂直居中:

<style>
    .yellowbox {
        height: 77px;
        width: 65px;
        background-color: #FFC104;
        font-weight: 700;
        color: #fff;
        /* 以下flex属性实现内容水平+垂直居中,兼容多行内容 */
        display: flex;
        flex-direction: column;
        justify-content: center;
        align-items: center;
    }
    /* 给内部文本设置常规行高,避免默认行高带来的额外间距 */
    .yellowbox div {
        line-height: 1.2;
    }
</style>
    
<div class="yellowbox">
    <div>MAY</div>
    <div>2022</div>
</div>
可选替代方案

如果不想使用flex布局,也可以去掉父容器的固定高度和行高设置,给两个子元素分别设置合适的行高,再通过调整父容器内边距实现居中,示例写法:

.yellowbox {
    width:65px;
    background-color: #FFC104;
    text-align: center;
    font-weight: 700;
    color:#fff;
    padding: 16px 0;
}
.yellowbox div {
    line-height: 1.3;
}

两种方案都可以实现“MAY在上、2022在下,整体在黄色方块内居中”的效果,优先推荐flex写法,后续调整文本大小、增减内容时不需要重新计算间距数值。

内容的提问来源于stack exchange,提问作者BGSniper-xll

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 08:45:34