flex 布局引起的元素宽度失效问题
flex 布局引起的元素宽度失效问题
有些 bug,一不注意可能排查半天都排查不出来,而它恰恰又是你自己造成的...
如下 bug 效果图,卡片样式写的好好的,图片下面的详细信息字段样式代码都是同一个(最后一行土地坐落设置的宽度是 100%,其他几个字段都是 50%),突然最后一行土地坐落抽筋了
bug 效果
预期效果
原因
愣了一下,调了几个 CSS 属性发现还是这样...到底是哪个样式写错了,起冲突了?
- 好在没过多久就觉得似曾相识,刚开始接触 flex 布局的时候好像看到过这个"效果"
- 之前内容比较多,通过
display: flex;
给元素设置 flex 布局的时候就会这样,然后我调整样式就调好了,这不就是还没调样式的样子吗?
让我们来回顾一下阮一峰老师 Flex 文章的基本知识 Flex 布局教程:语法篇(非常感谢阮一峰老师的分享!)
flex-shrink
属性定义了项目的缩小比例,默认为1,即如果空间不足,该项目将缩小。- 如果所有项目的
flex-shrink
属性都为1,当空间不足时,都将等比例缩小。如果一个项目的flex-shrink
属性为0,其他项目都为1,则空间不足时,前者不缩小。
(所以就算我给 图标和土地坐落这个字段设置了宽度,也没生效)
解决方案
既然知道了是 flex-shrink
属性在作祟,那我们就做了它!
给左侧两个元素设置上 flex-shrink: 0;
来避免被拉伸,右侧的文本就让它接着用默认值 1,自由拉伸,占据剩余的空间
.cardInfoItem text:nth-last-child(2) {
flex-shrink: 0;
}
.cardInfoItem image {
width: 28rpx;
margin-right: 14rpx;
flex-shrink: 0;
}
加上 flex-shrink: 0;
后,就达到了预期效果~
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构