我有一个看似简单的要求,一个固定大小的<ul />
项列表<div />
。列表中的项目应从左到右布局,在包装到下一行之前填充可用空间。
这是基本的HTML
<ul class="list-unstyled d-flex">
<li><div class="list-box"></div></li>
<li><div class="list-box"></div></li>
<li><div class="list-box"></div></li>
......
</ul>
班级.d-flex
只是:
.d-flex {
display: flex !important;
}
并且班级.list-box
只控制框的大小调整。
如果屏幕宽度太多,<ul />
获得水平滚动条,则框会从左到右排列成一行。
.list-box {
height: 100px;
width: 100px;
border: 1px solid black;
margin: 2px;
}
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" rel="stylesheet"/>
<h1>Bootstrap 4 Flex List</h1>
<ul class="list-unstyled d-flex">
<li>
<div class="list-box"></div>
</li>
<li>
<div class="list-box"></div>
</li>
<li>
<div class="list-box"></div>
</li>
<li>
<div class="list-box"></div>
</li>
<li>
<div class="list-box"></div>
</li>
<li>
<div class="list-box"></div>
</li>
<li>
<div class="list-box"></div>
</li>
<li>
<div class="list-box"></div>
</li>
<li>
<div class="list-box"></div>
</li>
<li>
<div class="list-box"></div>
</li>
<li>
<div class="list-box"></div>
</li>
<li>
<div class="list-box"></div>
</li>
<li>
<div class="list-box"></div>
</li>
<li>
<div class="list-box"></div>
</li>
<li>
<div class="list-box"></div>
</li>
</ul>
为什么不<li />
换行?
答案 0 :(得分:4)
您需要将flex-wrap
课程与d-flex
一起使用。 codepen
<ul class="list-unstyled d-flex flex-wrap">
<li><div class="list-box"></div></li>
<li><div class="list-box"></div></li>
<li><div class="list-box"></div></li>
......
</ul>
关于Flex换行
CSS flex-wrap属性指定是否强制使用flex项 成一行或可以包裹在多行上。如果包装 允许,此属性还允许您控制方向 哪些线堆叠。