所以想象一下我有以下标记
<div class="container">
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
</div>
和以下样式 (SASS)
@mixin max-width($width) {
@media screen and (max-width: $width) {
@content;
}
}
.container {
display: flex;
@include max-width(992px) {
number: 4; //Hypothetical property that is supposed to control number per row
}
@include max-width(640px) {
number: 2; //Hypothetical property that is supposed to control number per row
}
}
.item {
background-color: tomato;
padding: 20px;
margin-right: 20px;
flex: 1;
}
是否有真正的Flexbox CSS替代我的假设number
属性,可以控制每行显示多少项?
浮动式格栅是方便,因为你可以无限适合.items
每一个.row
因width
。但是,使用flexbox时,我必须使用许多.row
类的变通方法来控制不同宽度的项目的布局和数量。到目前为止,我很幸运,但是某些类型的布局将因这种方法而失败。
我必须摆脱块周围的空白,因为很难将百分比宽度清楚地应用于具有空白的元素,但是您可以在http://codepen.io/anon/pen/jPeLYb?editors=110上看到更改:
这里的重要部分是:
flex-flow: row wrap
它允许flexbox出现在多行中(默认值为nowrap
)flex-basis
width
在这种情况下等于position: relative
这使得宽度相对于容器而不是主体(这会弄乱舍入)