有一部分规范听起来确实像这样......就在“flex layout algorithm”和“main sizing”部分:
否则,从第一个未收集的项目开始,一个接一个地收集连续的项目,直到下一个收集的项目第一次不适合弹性容器的内部主尺寸,或者直到遇到强制中断。如果第一个未收集的物品不适合,则将其收集到行中。只要 CSS2.1 page-break-before/page-break-after [CSS21] 或 CSS3 break-before/break-after [CSS3-BREAK] 属性指定了分段中断,就会强制中断。
来自http://www.w3.org/TR/css-flexbox-1/#main-sizing
这听起来确实像(除了分页符应该用于打印的事实),当布置一个潜在的多行 flex 布局(我从规范的另一部分中获取的是没有 flex-wrap: nowrap
的)时,page-break-after: always
或者break-after: always
应该导致中断,或换行到下一行。
.flex-container {
display: flex;
flex-flow: row wrap;
}
.child {
flex-grow: 1;
}
.child.break-here {
page-break-after: always;
break-after: always;
}
但是,我已经尝试过了,但它并没有以这种方式实现......
- Safari(最多 7 个)
- Chrome(最多 43 个开发人员)
- Opera(最多 28 个开发者和 12.16 个)
- IE(最多 11 个)
它的工作方式听起来(至少对我来说)就像:
示例位于http://codepen.io/morewry/pen/JoVmVj。
我在错误跟踪器中没有找到任何其他请求,因此我在https://code.google.com/p/chromium/issues/detail?id=473481报告了它。
但是这个话题进入了邮件列表,不管它听起来如何,这显然不是他们想要暗示的,除了我猜是分页。因此,如果不将连续的 flex 布局嵌套在 flex 子项中或摆弄特定的宽度(例如flex-basis: 100%
),就无法在 flex 布局中的特定框之前或之后进行换行。
当然,这很烦人,因为使用 Firefox 实现证实了我的怀疑,即该功能非常有用。除了改进的垂直对齐方式之外,这种缺乏也消除了 flex 布局在许多场景中的大量实用性。必须使用嵌套的 flex 布局添加额外的包装标签来控制行换行的点增加了 HTML 和 CSS 的复杂性,并且遗憾的是,经常呈现order
无用。同样,强制项目的宽度以100%
减少 flex 布局的“响应”潜力,或者需要大量高度特定的查询或计数选择器(例如,可以实现您需要的一般结果的技术,这些技术在其他答案中提到) .
至少花车有clear
。有人希望,为此可能会在某个时候或另一个时候添加一些东西。