Rol*_*uhs 5 html css css3 flexbox
从这个JS-Fiddle中可以看出,我基本上尝试使用这个CSS来创建两个应满足这些要求的div:
我不明白这种行为,因为我已经设置flex-shrink了flex项目,所以它们应该能够缩小 - 但它们不会:如果较窄的项目宽度小于50%,它会包装.
.m {
display: flex;
flex-wrap: wrap;
}
.l_1 {
background-color: red;
flex: 1 1 50%;
}
.r_1 {
background-color: yellow;
flex: 1 1 50%;
}Run Code Online (Sandbox Code Playgroud)
<div class=m>
<div class=l_1>
left_______________________________________________X
</div>
<div class=r_1>
right
</div>
</div>Run Code Online (Sandbox Code Playgroud)
(在Firefox和Chrome上测试过)
问题不是flex-shrink。问题是flex-basis。您已将其设置为 50%。
这意味着flex-grow将向 增加可用空间flex-basis,并且每个项目将在有机会缩小之前快速换行。
从 切换flex-basis: 50%到flex-basis: 0。
更具体地说,不是flex: 1 1 50%use flex: 1,它分解为:
flex-grow: 1flex-shrink: 1flex-basis: 0现在flex-grow将可用空间均等地(不成比例地)分配给两个项目,并且它们可以在包装之前缩小。
(这里有更深入的解释:Make flex-grow expand items based on their original size)
.m {
display: flex;
flex-wrap: wrap;
}
.l_1 {
background-color: red;
flex: 1;
}
.r_1 {
background-color: yellow;
flex: 1;
}Run Code Online (Sandbox Code Playgroud)
<div class=m>
<div class=l_1>left_______________________________________________X</div>
<div class=r_1>right</div>
</div>Run Code Online (Sandbox Code Playgroud)