我知道这听起来像另一个关于flexbox的问题,这个问题已在其他地方解决,但我找不到google或stackoverflow现有帖子的解决方案。
问题很简单。
我在父div中有3个子div,其中一个包含大于其最终大小的内容。我希望每个孩子的父母1/3
无法满足其内容。
这是小提琴:http://jsfiddle.net/xeqo0msq/
这是HTML:
<div class="parent">
<div class="child red">
<div class="content">1</div>
</div>
<div class="child blue">2</div>
<div class="child green">3</div>
</div>
关联的CSS:
.parent {
display: flex;
flex-direction: column; /*or row*/
height: 100%;
width: 100%;
}
.child {
flex: 1;
}
.content{
width: 800px;
height: 100px;
}
.red {background: red;}
.blue {background: blue;}
.green {background: green;}
对于flex-direction: row;
,它按预期工作:每个孩子都是其父级的1/3
,尽管第一个内容更大。宽度就好像它独立于内容。
对于flex-direction: column;
,第一个孩子比另外两个孩子大。
是否可以使用flexbox和flex-direction: column;
实现此目的?
答案 0 :(得分:4)
当定义为flex-direction: row
时,父级的宽度受屏幕限制,因此它是已知的。 Flex将宽度分配给三个孩子。
但是当flex-direction: column
时,父高度未知(由孩子确定)。虽然您将其定义为height: 100%
,但此100%
相对于其父元素的高度,即body
。 body
的高度不是全屏高度。
您有三种选择: