原创 序猿杂谈 2025-10-24 08:31 重庆
点击关注公众号,技术干货及时达。
如果按照常规思路编写 CSS,如:<div class="wrap"><div class="infos"><div>Soccer</div><div class="self">Campeonato De Reserva De Primera Division C</div></div><div class="live">Live</div></div>
渲染效果往往会出现问题,如下所示:.wrap {display: flex;align-items: center;width: 350px;border: 1px dashed #ccc;padding: 4px 16px;gap: 16px;}.infos {flex: 1;display: flex;gap: 8px;align-items: center;}.self {flex: 1;padding: 4px;background-color: silver;border-radius: 6px;/* 文字超出隐藏 */overflow: hidden;white-space: nowrap;text-overflow: ellipsis;}.live {padding: 4px 16px;background: cornflowerblue;border-radius: 6px;color: white;flex-shrink: 0;}
总结「层级」「是否需要」<html lang="zh-CN"><head><meta charset="UTF-8" /><meta name="viewport" content="width=device-width, initial-scale=1.0" /><title>Flex 布局下文字省略不生效?原因其实很简单</title><style>* {margin: 0;padding: 0;}body {width: 100vw;height: 100vh;display: flex;justify-content: center;align-items: center;}.wrap {display: flex;align-items: center;width: 350px;border: 1px dashed #ccc;padding: 4px 16px;gap: 16px;}.infos {flex: 1;display: flex;gap: 8px;align-items: center;min-width: 0; /* ✅ 关键:允许内部文字被压缩 */}.self {flex: 1;padding: 4px;background-color: silver;border-radius: 6px;overflow: hidden;white-space: nowrap;text-overflow: ellipsis;}.live {padding: 4px 16px;background: cornflowerblue;border-radius: 6px;color: white;flex-shrink: 0;}</style></head><body><div class="wrap"><div class="infos"><div>Soccer</div><div class="self">Campeonato De Reserva De Primera Division C</div></div><div class="live">Live</div></div></body></html>
min-width: 0
「原因」.wrap
❌
最外层容器,无需压缩
.infos
✅
是 .wrap 的 flex 子项,默认 min-width: auto 会阻止内部压缩
.self
❌
父层已允许压缩,无需重复设置
❝结论:在 Flex 布局中,当内部文字的省略不生效时,「优先检查文字外层的容器」 是否设置了 min-width: 0。大多数情况下,只需在容器层加上这一行,就能彻底解决问题。❞点击"阅读原文"了解详情~
