我想使用flexbox与我的列表构建2x2网格。我的代码如下:
<ul class="cont">
<li>text</li>
<li>text</li>
<li>text</li>
<li>text</li>
</ul>
的CSS:
.cont { display: flex; }
.cont li { width: 50%; }
不幸的是,它连续排列了li
中的四个。
答案 0 :(得分:3)
包裹柔性框行并提供项目flex-basis: 50%
或width: 50%
.cont {
display: flex;
flex-flow: row wrap; /* Shorthand for flex-direction: row and flex-wrap: wrap */
}
.cont li {
flex-basis: 50%; /* or width: 50% */
}
<ul class="cont">
<li>text</li>
<li>text</li>
<li>text</li>
<li>text</li>
</ul>
答案 1 :(得分:1)
flex-wrap: wrap
让我们知道它可以包装。当undefined为nowrap
时,它的默认参数。
答案 2 :(得分:1)
另一种方法是使用flex-direction。
.cont {
display:flex;
flex-direction:column; // or row depending on which way you want it to flow
}
答案 3 :(得分:0)
您可能需要设置li
和的弹性属性,以便在需要时告诉父级换行。
* {
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
.cont {
display: flex;
flex-wrap: wrap;
list-style-type: none;
margin: 0;
padding: 0;
}
.cont li {
flex: 0 0 50%;
border: 1px solid grey;
text-align: center;
}
&#13;
<ul class="cont">
<li>text</li>
<li>text</li>
<li>text</li>
<li>text</li>
</ul>
&#13;