【发布时间】:2016-05-03 01:58:38
【问题描述】:
我遇到了拉伸弯曲的问题。 我有带有项目的 flexbox div。这些项目可以拉伸到全宽并具有 min-width 属性,因此大屏幕可以容纳 3-4 个元素,小屏幕可以容纳 1-2 个元素。 我想让它们的宽度相等,但问题是如果它们的数量少于顶部元素,则包装的物品会更宽。
.items {
display: flex;
justify-content: center;
flex-wrap: wrap;
width: 100%;
}
.item {
min-width: 400px;
border: 1px solid black;
margin: 0;
height: 200px;
flex-grow: 1;
}
<div class="items">
<div class="item">1</div>
<div class="item">1</div>
<div class="item">1</div>
<div class="item">1</div>
<div class="item">1</div>
</div>
谢谢!
更新 02.05.2016
感谢@vals,我想出了适用于不同屏幕尺寸的百分比宽度解决方案。 (但似乎我在使用 33% 宽度的元素时遇到了一些小问题,其中 1% 的空白空间在它们周围留下了 xD)
.items {
display: flex;
justify-content: center;
flex-wrap: wrap;
width: 100%;
box-sizing: border-box;
align-items: center;
}
@media only screen and (max-width: 820px) {
.item {
width: 100%;
}
}
@media only screen and (min-width: 821px) and (max-width: 1220px) {
.item {
width: 50%;
}
}
@media only screen and (min-width: 1221px) and (max-width: 1620px) {
.item {
width: 33%;
}
}
@media only screen and (min-width: 1621px) and (max-width: 2020px) {
.item {
width: 25%;
}
}
.item {
box-sizing: border-box;
border: 1px solid black;
margin: 0;
height: 200px;
}
<div class="items">
<div class="item">1</div>
<div class="item">1</div>
<div class="item">1</div>
<div class="item">1</div>
<div class="item">1</div>
</div>
【问题讨论】:
-
您正在使用
flex:1。这告诉弹性项目消耗容器中的所有可用空间。如果您的优先级是跨多行的等宽项,那么flex:1不是解决方案。