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

如何使用Flex布局和space-between属性将元素对齐为直线?

问题根因

你遇到的挤压问题是flex布局的默认收缩机制导致的:flex容器的子元素默认flex-shrink属性值为1,当容器总宽度不足以容纳所有子元素的宽度+边距总和时,子元素会自动压缩宽度来适配容器宽度,就出现了内容被挤压的情况。


解决方案

不需要给列设置固定宽度,只需要关闭子元素的自动收缩即可,给.item添加flex-shrink: 0属性,强制子元素保持你设置的原有宽度,不会被容器挤压,也适配动态列数的场景,不需要动态调整宽度值。

修改后的完整CSS代码如下:

#box { 
    display: flex;
    width: 100px;
    margin: 0 -5px;
    /* 如果需要溢出部分可以横向滚动,可加以下属性 */
    /* overflow-x: auto; */
}

.item {
    background: gray;
    width: 50px;
    height: 50px;
    margin: 0 5px;
    /* 新增属性:禁止子元素自动收缩 */
    flex-shrink: 0;
}

HTML代码无需修改即可实现需求。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 03:24:00