如果我有一个包含多个容器的弹性盒子容器,我如何使这些容器中所包含的项目在容器本身之前换行?
例如(codepen):
HTML:
<div>
<row>
<column id="first">
<widget width=1 height=8></widget>
<widget width=1 height=8></widget>
</column>
<row id="second">
<widget></widget>
<widget></widget>
<widget></widget>
</row>
</row>
</div>
CSS
column, row, widget {
background: RGBA(0,0,0,.2);
margin: 1em;
display: flex;
flex-wrap: wrap;
align-items: top;
align-content: flex-start;
}
row {
flex-direction: row;
}
column {
flex-direction: column;
}
widget {
min-height: 100px;
flex-grow: 2;
flex-shrink: 1;
width: calc(25% - 3em);
min-width: 300px;
height: 100px;
flex-basis: 0;
padding: .5em;
display: block;
}
widget[width=1] {
flex-grow: 1;
min-width: 150px;
}
widget[width=4] {
flex-grow: 4;
min-width: 600px;
}
widget[width=8] {
flex-grow: 8;
min-width: 1200px;
}
widget[height=1] {
min-height: 150px;
}
widget[height=4] {
min-height: 600px;
}
widget[height=8] {
min-height: 1200px;
}
widget {
background: RGBA(200,0,20,.5);
}
我希望在 #first
下方换行之前先换行 #second
中的项目。换句话说,我总是想首先尝试内层项目的换行,然后再尝试外层项目的换行,这似乎与默认情况相反。有没有什么方法可以做到这一点?
编辑: 有人要求进行视觉澄清。
期望的行为稍小。内部项目在它们的容器之前换行。
期望的行为更小。
期望的行为最小。当内部项目无法再次换行时,容器最终才会换行。
实际发生的情况是,容器在其内容之前换行。