【发布时间】:2019-10-17 04:26:01
【问题描述】:
我需要使用 flexbox 为所有 4 种主要屏幕尺寸在 div 内实现药片的均匀分布。屏幕尺寸越小,适合单行的 div 就越少。其余的 div 应放在下一行。事先不知道要分发的 div 的数量。每个药丸都会在里面收到一个单词,因此需要一个最小保证宽度。 这是一张不同屏幕尺寸的结果可能看起来像单行的图片。我该怎么做这样的事情?
【问题讨论】:
-
提问时请参考How to ask。
我需要使用 flexbox 为所有 4 种主要屏幕尺寸在 div 内实现药片的均匀分布。屏幕尺寸越小,适合单行的 div 就越少。其余的 div 应放在下一行。事先不知道要分发的 div 的数量。每个药丸都会在里面收到一个单词,因此需要一个最小保证宽度。 这是一张不同屏幕尺寸的结果可能看起来像单行的图片。我该怎么做这样的事情?
【问题讨论】:
类似这样的:
.row {
display: flex;
flex-flow: row wrap;
list-style: none;
padding-bottom: 12px;
}
.pill {
min-width: 50px;
max-width: 200px;
margin-right: 12px;
margin-bottom: 12px;
text-align: center;
padding: 6px;
border: 2px solid;
border-radius: 50%;
flex: 1 0 0;
}
.pill:last-child {
margin-right: 0;
}
<div class="row">
<div class="pill">foo</div>
<div class="pill">bar</div>
<div class="pill">foobar</div>
<div class="pill">foo</div>
<div class="pill">bar</div>
<div class="pill">foo</div>
<div class="pill">bar</div>
<div class="pill">foobar</div>
<div class="pill">foo</div>
<div class="pill">bar</div>
</div>
<div class="row">
<div class="pill">foo</div>
<div class="pill">bar</div>
<div class="pill">foobar</div>
<div class="pill">foo</div>
<div class="pill">bar</div>
</div>
<div class="row">
<div class="pill">foo</div>
<div class="pill">bar</div>
<div class="pill">foobar</div>
</div>
<div class="row">
<div class="pill">foo</div>
</div>
您可以根据需要调整药丸元素的最小和最大宽度。
【讨论】:
min-width 设置为一个药丸 div,那么只有 6 个药丸 div 适合一行,其余药丸 div 会转到下一行吗?