我有一个弹性项目,它也是一个弹性容器.sub-con,问题是.sub-con的弹性项目即使在添加了flex-flow: row wrap之后,也拒绝包装.
I have a flex item that is also a flex container .sub-con, problem is the flex item of .sub-con is refusing to wrap, even after adding : flex-flow: row wrap.
任何人都可以帮我解决这个问题,或者指出我做错了什么.
Can anyone fix this for me, or point out what I'm doing wrong.
.container { display: flex; justify-content: center; align-items: center; flex-flow: row wrap; height: 100vh; } .sub-con { margin-right: 50px; margin-left: 50px; height: 500px; background-color: #fff; display: flex; justify-content: center; flex-flow: row wrap; } .col-one { height: 100px; border: 1px solid lightgreen; flex-grow: 2; } .col-two { height: 100px; border: 1px solid red; flex-grow: 1; }
<div class="container"> <div class="sub-con"> <div class="col-one"></div> <div class="col-two"></div> </div> </div>
推荐答案
您在嵌套容器中的伸缩项目的大小设置为百分比.
Your flex items in the nested container are sized with percentages.
.col-one{ width: 40%; height: 100px; border: 1px solid lightgreen; } .col-two{ width: 40%; height: 100px; border: 1px solid red; }因为百分比长度是基于父级的长度,所以他们没有理由要包装.即使父级的宽度为1%,它们也始终是父级的40%.
Because percentage lengths are based on the length of the parent they have no reason to wrap. They will always be 40% of the parent, even if the parent has a width of 1%.
如果您使用其他长度单位,例如px或em,它们将自动换行.
If you use other units for length, such as px or em, they will wrap.
jsFiddle演示
.container { display: flex; justify-content: center; align-items: center; flex-flow: row wrap; height: 100vh; } .sub-con { flex: 1; /* for demo only */ align-content: flex-start; /* for demo only */ margin-right: 50px; margin-left: 50px; height: 500px; background-color: #fff; display: flex; justify-content: center; flex-flow: row wrap; } .col-one { width: 200px; height: 100px; border: 1px solid lightgreen; } .col-two { width: 200px; height: 100px; border: 1px solid red; }
<div class="container"> <div class="sub-con"> <div class="col-one"></div> <div class="col-two"></div> </div> </div>
更多推荐
为什么这些弹性物品没有包装?
发布评论