弹性布局时,一个盒子宽度固定,设置flex-shrink: 0
,另一个盒子自适应设置flex:1
,当自适应盒子里的内容超出盒子时,会影响父盒子的宽度。
最新发现,flex:1
是三个属性的缩写分别为flex-grow flex-shrink flex-basis
, flex:1
等价于flex: 1 0 auto
,flex-basis:auto
的意思是元素原本的宽度(由内容决定)
当一个元素同时被设置了 flex-basis (除值为 auto 外) 和 width (或者在 flex-direction: column 情况下设置了height) , flex-basis 具有更高的优先级
所以直接设置flex: 1 0 0
就可以解决问题了,不用再去设置min-width 或 width
-----------分割线--------------------
- 1、 刚开始时,解决办法是给自适应盒子加上
min-width: 0;
。 - 2、现在实验出直接将自适应盒子设置
width: 0
,也可解决,且少写一句。
flex布局下文字超出省略号不出现,也是这个原因