【发布时间】:2012-03-04 07:39:48
【问题描述】:
我有一个应用程序,它使用类似下面的经典电子邮件布局。
我使用新的 CSS3 flexbox 模型构建了它,它运行良好,直到我添加了用户在文件夹框中动态添加新项目的功能。我希望 flexbox 以这样一种方式工作,即只要文件夹框中还有空间,它就不会开始增长到下面的任务框。不幸的是,这不是我所看到的(在 Chrome 17 中)。
我已经构建了一个 JSFiddle here 来演示这个问题。只需单击添加文件夹链接,您就会看到文件夹框在不断增长,即使它还有足够的空间容纳新的孩子。
问题。如何使用 flexbox 构造两个垂直对齐的盒子,其中一个占据可用高度的三分之二(box-flex 2),另一个占据三分之一(box-flex 1 )并且他们这样做的方式是,当新内容添加到第一个盒子时,它不会开始增长,直到空间不足。
【问题讨论】:
-
实际上,这就是它应该的行为方式。如果 A 有
box-flex: 2而B 有box-flex: 1,这并不意味着A 将是B 的两倍。这意味着A 将占用B 的剩余空间的两倍。如果有90px 的剩余空间, A 将占用 60px,B 将占用 30px。 A 和/或 B 越大,两者之间的分割空间就越小。较新的规范通过允许您指定其独立于收缩能力的增长能力来解决此问题。