您可以使用flex-wrap
控制包装和媒体查询调整柔性项目的大小:
.container {
display: flex;
flex-flow: row nowrap; /* disable browser-controlled wrapping */
}
.container > div {
padding: 49px 0;
text-align: center;
flex: 1;
box-sizing: border-box;
}
input[type=button] {
background: red;
}
@media (max-width: 700px) {
.container { flex-wrap: wrap; }
.container > div { flex-basis: 33.33%; }
}
@media (max-width: 400px) {
.container > div { flex-basis: 50%; }
}
<div class="container">
<div><input type="button" value="Button 1"></div>
<div><input type="button" value="Button 2"></div>
<div><input type="button" value="Button 3"></div>
<div><input type="button" value="Button 4"></div>
<div><input type="button" value="Button 5"></div>
<div><input type="button" value="Button 6"></div>
</div>
revised fiddle
在上面的例子,在一定的断点(屏幕宽度700像素,在这种情况下),flex-wrap: wrap
被启用,并且每个柔性项变宽33%,迫使每行3个项目。
在较小的断点处,flex-basis
调整为50%
,每行只允许两个项目。
嘿,这是相当聪明。谢谢。 – patstuart