我有一个flex布局,其中包含两个flex项目,按行显示(flex-direction: column
)。这些项目应该具有最小高度,但如果其中一个需要增长,则它们的高度应该保持相同。请参见此JSFiddle示例,缩小结果面板的宽度; 这将强制第二个.component
元素增加其高度,但第一个.component
元素的高度保持不变。
是否可能强制flex项目保持相同的高度?请注意,最重要的是两个.component
元素的堆叠方式,我无法在不使用 flex-direction: column
的情况下实现;使用 flex-direction: row
可以使它们具有相同的高度,但是堆叠效果无法实现。
这里是目前已经完成的结果:
div {
border: 1px solid black;
box-sizing: border-box;
}
.container {
display: flex;
flex-direction: column;
align-content: stretch;
}
.component {
min-height: 300px;
}
.left {
margin-left: 50px;
margin-top: 50px;
margin-right: 100px;
background-color: lightyellow;
}
.right {
margin-left: 100px;
margin-top: -250px;
margin-right: 50px;
background-color: lightgreen;
}
<div class="container">
<div class="component left">
</div>
<div class="component right">
<p>
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent sed orci scelerisque, scelerisque enim at, ullamcorper ipsum. Cras eget sapien mi. Aliquam ultrices, ligula ut mollis maximus, ligula massa imperdiet libero, at faucibus mauris ante non
magna. Sed ex lacus, efficitur sit amet neque ut, venenatis hendrerit libero. Suspendisse ornare orci mi. Nulla iaculis egestas libero, eu tincidunt urna tristique et. Quisque nec odio non elit molestie facilisis.
</p>
<p>
Vestibulum scelerisque justo urna, a semper nisi sollicitudin in. Cras congue enim eu euismod semper. Proin consequat gravida felis, quis tincidunt massa pulvinar quis. Morbi nec diam eget orci vestibulum malesuada. Sed volutpat metus eget mattis commodo.
Nulla facilisi. Praesent lectus mauris, consequat eu varius vitae, cursus vitae leo. Vivamus sagittis lacinia tortor eu ullamcorper. Integer eget velit magna. Duis vestibulum molestie posuere.
</p>
</div>
</div>
300px
。.right
组件的高度将根据其内容而改变。当发生这种情况时,.left
组件也应该改变其大小。 - Andrei V