【发布时间】:2020-08-12 21:27:27
【问题描述】:
我有一个包含两个弹性项目的弹性布局,显示为行 (flex-direction: column)。这些物品应该有一个最小高度,但它们应该保持其中一个需要增长的相同高度。请参阅this JSFiddle 并减小结果窗格的宽度;这会强制第二个 .component 元素增加其高度,但第一个 .component 元素的高度保持不变。
是否可以强制弹性项目保持相同的高度?请注意,这里的主要内容是两个.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>
【问题讨论】:
-
我不完全确定您想要实现什么布局。您希望这两个组件以相同的高度并排放置,还是以相同的高度堆叠在一起?小提琴显示了对我来说重叠的两个组件。 ...所以你的意思是堆叠在一起吗?
-
@elfwyn 重叠的目的是并且是布局中最重要的部分。这就是我设置所有边距的原因。它们的最小高度均为
300px。.right组件的高度会根据它的内容而改变。发生这种情况时,“.left”组件也应该改变它的大小。