flex-shrink用于控制弹性子元素在空间不足时的收缩比例,默认值为1,值越大收缩越多,0则不收缩;当容器宽度小于子元素总宽度时,浏览器按flex-shrink系数分配压缩量,如示例中item1(flex-shrink:1)和item2(2)共压缩100px,按1:2比例分别约缩33px和67px,而item3设为0保持不变,该属性常与flex-grow、flex-basis通过flex简写使用,理解它有助于排查元素意外变窄问题。
flex-shrink 是 CSS Flexbox 布局中的一个属性,用来控制弹性盒子(flex item)在空间不足时的收缩能力。
当所有弹性子元素的总宽度超过容器宽度时,浏览器需要决定如何缩小这些子元素以适应容器。flex-shrink 就是决定某个子元素“应该被压缩多少”的系数。
它的值是一个数字,默认是 1。值越大,元素在空间不足时被压缩的程度就越大;值为 0 时,表示不参与压缩。
A B C
CSS 示例:
.container {
display: flex;
width: 500px;
}
.item {
width: 200px;
height: 100px;
}
.item1 { flex-shrink: 1; }
.item2 { flex-shrink: 2; }
.item3 { flex-shrink: 0; }
结果解释:
基本上就这么回事。flex-shrink 虽然不常手动设,但理解它能帮你搞明白为什么某些元素“莫名其妙变窄了”。