【发布时间】:2015-09-18 12:24:01
【问题描述】:
我想创建这个布局:
当一个项目不适合容器时,我们可以移动到下一行:
当容器比更宽的项目小时,我们可以将内容包裹在多行中
使用 Javascript 非常简单,这里是示例 https://jsfiddle.net/oucxsep4/。
var choices = document.querySelectorAll('li');
var maxWidth = 0;
// read
for (i = 0; i < choices.length; ++i) {
maxWidth = Math.max(maxWidth, choices[i].offsetWidth)
};
// write
for (i = 0; i < choices.length; ++i) {
choices[i].style.width = maxWidth + "px";
};
ul{
margin: 0;
padding: 0;
list-style: none;
}
li{
background: red;
float: left;
margin: 5px;
}
<ul>
<li>first choice</li>
<li>choice</li>
<li>This is the wider choice</li>
<li>other choice</li>
</ul>
是否可以不使用 Javascript,只使用 CSS 来做到这一点?我试过flexbox 没有成功。
【问题讨论】:
-
Flexbox 没有网格概念。不同 flex 行的项目独立运行,所以我认为你不能用 flexbox 来实现。
-
这是重复回答您的问题吗? stackoverflow.com/questions/42656183/…