为什么这些弹性项目没有包装? [英] Why is these flex items not wrapping?
问题描述
我有一个弹性项目,它也是一个弹性容器 .sub-con
,问题是 .sub-con
的弹性项目拒绝包装,即使在添加:flex-flow: row wrap
.
谁能帮我解决这个问题,或者指出我做错了什么.
.container {显示:弹性;对齐内容:居中;对齐项目:居中;flex-flow:行包装;高度:100vh;}.sub-con {右边距:50px;左边距:50px;高度:500px;背景色:#fff;显示:弹性;对齐内容:居中;flex-flow:行包装;}.col-one {高度:100px;边框:1px纯浅绿色;弹性增长:2;}.col-二{高度:100px;边框:1px纯红色;弹性增长:1;}
<div class="sub-con"><div class="col-one"></div><div class="col-two"></div>
嵌套容器中的弹性项目的大小使用百分比.
.col-one{宽度:40%;高度:100px;边框:1px纯浅绿色;}.col-二{宽度:40%;高度:100px;边框:1px纯红色;}
因为百分比长度基于父元素的长度,所以它们没有理由包装.它们将始终是父级的 40%,即使父级的宽度为 1%.
如果您使用其他长度单位,例如 px
或 em
,它们将换行.
.container {显示:弹性;对齐内容:居中;对齐项目:居中;flex-flow:行包装;高度:100vh;}.sub-con {弹性:1;/* 仅用于演示 */对齐内容:flex-start;/* 仅用于演示 */右边距:50px;左边距:50px;高度:500px;背景色:#fff;显示:弹性;对齐内容:居中;flex-flow:行包装;}.col-one {宽度:200px;高度:100px;边框:1px纯浅绿色;}.col-二{宽度:200px;高度:100px;边框:1px纯红色;}
<div class="sub-con"><div class="col-one"></div><div class="col-two"></div>
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;
}
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%.
If you use other units for length, such as px
or em
, they will wrap.
.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>
这篇关于为什么这些弹性项目没有包装?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!