现在我有一个flex列,其中有两个项目,我试图找出如何得到我正在寻找的行为。特别是,我试图强制执行那些具有一定最小和最大高度的项目。使用Flexbox的最小和最大高度
- 第一项
item1
是最高的。它应该包含尽可能多的垂直空间,但在任何情况下都不应低于50%。如果内容比这个大,它应该垂直滚动。 - 第二项
item2
位于中间。它不大于其内容,但在任何情况下都不应超过50%;如果内容比这个大,它应该垂直滚动。 - 在
item1
将伸展超过50%的情况下,但item2
不会,item2
不应收缩,因此它的内容应小于其内容。item1
应改为开发垂直滚动条。 - 在
item1
和item2
在内容接缝处爆裂(太多不适合可用空间)的情况下,它们都应占用可用空间的50%。这就是说,item2
的增长优先于item1
的增长。 - 整列应始终保持在固定的高度。
(我发誓,我并不想成为苛刻的,我只是想成为真正的超级特定!)
这里是SCSS代码我目前有:
.column {
display: flex;
flex-direction: column;
.item1 {
flex: 1 1 auto;
overflow-y: scroll;
}
.item2 {
flex: 0 1 auto;
overflow-y: scroll;
}
}
这让我在那里的大部分途径,但在两个项目失控的情况下,item2
最终超过item1
。此外,在只有item1
变得过大的情况下,item2
缩小了,我宁愿没有。
但是总结一下,真的回答了这个问题中最紧迫的部分,可以和Flexbox结合使用最大高度和最小高度吗?只需添加min-height
和max-height
似乎不起作用。
编辑:有人问一个工作的例子。这应该起作用,尽管它可能会让你失明。
https://jsfiddle.net/TheSoundDefense/oxykdhpt/1/
编辑2:现在的代码有item1
和隔离item2
,使得item3
无关,所以我删除它。
请提供一个工作示例 – Dekel
yes..can同时使用 – charlietfl
我无法理解的部分*第一个项目item1位于顶部。它应该包含尽可能多的垂直空间,但在任何情况下都不应低于50%。如果内容比这更大,它应该垂直滚动* – vals