我想动态地增长一些弹性项目的内容,而所有其他项目的大小始终是最大的兄弟姐妹。我的问题是,我也希望项目能使容器增长,而容器没有固定的尺寸。这里有一个fiddle,应该比较容易理解。https:/jsfiddle.netuxjs5eL63 我希望能按下按钮N次,所有的橙色方块在成长的同时保持同等大小。
这在flexbox中可以实现吗?如果不可能,我如何才能达到预期的效果?
下面是JSFiddle的代码,因为我需要提供一些。
var dimension = 180;
function grow() {
document.getElementById("grower").style.height = dimension + "px";
document.getElementById("grower").style.width = dimension + "px";
dimension = dimension + 20;
}
.container {
display: flex;
min-width: 200px;
min-height: 200px;
}
.item {
flex-grow: 1;
flex-shrink: 1;
flex-basis: 0;
background-color: orange;
border: 1px solid grey;
}
#grower {
width: 160px;
height: 160px;
background-color: yellow;
}
<button onclick="grow()">
Grow!
</button>
<div class="container">
<div class="item">
<div id="grower">
</div>
</div>
<div class="item">
</div>
<div class="item">
</div>
</div>
如果你给元素设置特定的宽度,那么flex-box将无法工作,设置宽度很重要吗?如果你只设置高度,并与作为 100%
那么它就会工作。最终你可以设置 overflow: hidden
但我认为剪切内容将是坏事。