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

切换单个Flexbox容器时所有容器意外展开的问题求助

问题分析

Flexbox容器默认的align-items: stretch属性是导致该问题的核心:当你使用display: flex创建容器时,所有flex子元素会被自动拉伸至与容器内最高子元素的高度一致。当你展开某个.snippet-box的折叠内容后,这个盒子的高度会随内容增加,其他没有展开内容的盒子也会被强制拉伸到相同高度,最终出现所有容器高度同步变化的现象。

最小改动修复方案

只需添加一行CSS即可解决问题,有两种可选方案:

方案1:针对单个子项设置

给.snippet-box添加align-self: flex-start,让每个盒子仅根据自身内容高度调整,不受其他盒子影响:

.snippet-box {
    display: flex;
    flex-direction: column;
    min-height: 180px;
    flex-basis: 290px;
    background-color: white;
    box-shadow: 0px 0px 20px rgba(128, 128, 128, 0.1);
    border-radius: 15px;
    box-sizing: border-box;
    align-self: flex-start; /* 新增属性 */
}

方案2:针对父容器全局设置

修改.snippet-box-container的align-items属性为flex-start,让所有子元素默认按自身内容高度排列:

.snippet-box-container {
    display: flex;
    justify-content: center;
    gap: 25px;
    width: 100%;
    padding: 0px 15px;
    align-items: flex-start; /* 新增属性 */
}

两种方案都能实现预期效果,选择哪种取决于你的整体布局需求——如果后续有其他子项需要保持拉伸,方案1更灵活;如果所有子项都不需要拉伸,方案2更简洁。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 00:55:08