我的目标是创建一个内容包装器,每个项目的高度/宽度相等。仅这一点很容易,并在下面进行了演示,但如果它们缩小到min-width
以下,我希望将这些项目(DIV' s)换行到另一行,这样它在移动显示器上看起来不会压缩。
我想jQuery可以处理这个,但为了简单和大小,我想看看是否只有css解决方案。
#wrapper {
display: table;
table-layout: fixed;
width:90%;
height:100px;
background-color:Gray;
}
#wrapper div {
display: table-cell;
height:100px;
min-width:200px;
}
#one {
background-color:green
}
#two {
background-color:blue
}
#three {
background-color:red
}

<div id="wrapper">
<div id="one">one one one one one one one one one one one one one one one one one one one one one</div>
<div id="two">two two two two two two</div>
<div id="three">three</div>
</div>
&#13;
有关实施的一些细节:
这是针对图标网格类型的登录页面,存在的项目数是动态的,页面的尺寸也是如此。由于物品包装的垂直滚动很好,但我不希望有任何水平滚动。
答案 0 :(得分:4)
您可以使用Flexbox
和flex-wrap: wrap
执行此操作,此处为Fiddle
#wrapper {
display: flex;
flex-wrap: wrap;
width: 90%;
height: 100px;
background-color: Gray;
}
#wrapper div {
flex: 1;
height: 100px;
min-width: 200px;
}
#one {
background-color: green
}
#two {
background-color: blue
}
#three {
background-color: red
}
<div id="wrapper">
<div id="one">one one one one one one one one one one one one one one one one one one one one one</div>
<div id="two">two two two two two two</div>
<div id="three">three</div>
</div>
答案 1 :(得分:4)
从我的评论中
不要使用display:table属性,行上的单元格不要换行,flex会做;)
#wrapper {
display: flex;
flex-wrap: wrap;
width: 90%;
height: 100px;
background-color: Gray;
}
#wrapper div {
height: 100px;
min-width: 200px;
flex: 1;
}
#one {
background-color: green
}
#two {
background-color: blue
}
#three {
background-color: red
}
<div id="wrapper">
<div id="one">one one one one one one one one one one one one one one one one one one one one one</div>
<div id="two">two two two two two two</div>
<div id="three">three</div>
</div>