当前位置: 首页 > news >正文

CSS Flexbox 的一个“坑”

一、设置自适应布局,一个盒子固定尺寸,另一个盒子flex1,父盒子设置display:flex,不就够了,还要给flex1的盒子设置最小宽度吗?

答案是最好这样,在实际开发中,flex: 1 的盒子在某些情况下确实需要加 min-width: 0,否则它可能不会收缩到你期望的宽度,尤其是内容超出时。

如图所示:左边的盒子设置的flex:1,右面的盒子固定宽高,在屏幕放大或缩小时,由于左边盒子内容太长,右面盒子被压缩了,左边没有实现自适应大小。给左边盒子加上min-width: 0后,解决问题。

二、为什么有时需要 min-width: 0

在 flex 布局下,子项的 min-width 默认是 auto,这意味着如果内容太长,flex 子项不会收缩到小于内容宽度,导致布局“撑破”或溢出。

设置 min-width: 0,可以让 flex 子项在空间不足时收缩到 0,真正实现“自适应剩余空间”

.parent {display: flex;
}
.child1 {width: 300px;
}
.child2 {flex: 1;// min-width: 0; // 不加时,内容超长会撑破
}

如果 .child2 里有很长的内容,不加 min-width: 0 时,.child2 可能不会被压缩,导致 .child1 被挤压甚至溢出。

三、结论:

  • 简单场景:flex:1 通常就够了。
  • 内容可能超长/溢出时:建议加 min-width: 0;,保证布局健壮。
  • 这是 CSS Flexbox 的一个“坑”,加上 min-width: 0 是最佳实践。
http://www.dtcms.com/a/318131.html

相关文章:

  • 【动态规划 | 01背包】动态规划经典:01背包问题详解
  • 解析 div 禁止换行与滚动条组合-CSS运用
  • 模电知识点总结
  • 30ssh远程连接与远程执行命令
  • python实现获取k8s的pod信息
  • 华为云安全组默认规则
  • [两数之和II]
  • 保姆级教程:从0手写RAG智能问答系统,接入Qwen大模型|Python实战
  • Django创建抽象模型类
  • Ethereum:Hardhat Ignition 点燃智能合约部署新体验
  • Linux发行版分类与Centos替代品
  • React:受控组件和非受控组件
  • 将ssm聚合项目部署到云服务器上
  • MyBatis基础操作完整指南
  • 计数组合学7.14(对偶 RSK 算法)
  • 四、Envoy动态配置
  • 工业协议转换终极武器:EtherCAT转PROFINET网关的连接举例
  • 直播SDK商业化 vs 开源路线:工程稳定性、成本与演进能力全对比
  • 嵌入式开发学习———Linux环境下IO进程线程学习(五)
  • Flink CDC如何保障数据的一致性?
  • 云计算一阶段Ⅱ——12. SELinux 加固 Linux 安全
  • Dart语言“跨界”指南:从JavaScript到Kotlin,如何用多语言思维快速上手
  • Pipeline功能实现Redis批处理(项目批量查询点赞情况的应用)
  • Typescript入门-类型讲解
  • django object.create之后返回id
  • 【音视频】ALSA详细介绍
  • 从单枪匹马到联盟共生:白钰玮的IP破局之路​
  • 最新windows安装git(保姆及教程)
  • Python 高阶函数:用函数玩出花样
  • gpt-oss openai开源大模型