灵活的Flexbox网格

时间:2016-09-08 08:37:11

标签: html css css3 flexbox

我正在寻找一种制作这种动态弹性箱网格的方法:

偶数项目:标准2列网格

项目数量不均匀:最后一项应在右栏上使用两行

(例外:如果只有两个项目可用)

See the attached image:

1 个答案:

答案 0 :(得分:1)

使用flexbox es管理创建 2列网格

查看以下代码:

$('input[type=button]').click(function() {
  $('.wrapper').append('<div></div>');
});
body {
  margin: 0;
}
* {
  box-sizing: border-box;
}
.wrapper {
  display: flex;
  flex-wrap: wrap;
}
.wrapper > div {
  border: 1px solid red;
  flex: 0 1 50%;
  height: 100px;
}
.wrapper > div:nth-last-child(2):nth-child(even) {
  height: 200px;
}
.wrapper > div:nth-last-child(2):nth-child(even) + div {
  margin-top: -100px;
}
input[type=button] {
  position: fixed;
  top: 20px;
  left: 20px;
}
.wrapper > div:nth-last-child(2):first-child {
  height: 200px;
}
.wrapper > div:nth-last-child(2):first-child + div {
  height: 200px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="wrapper">
  <div></div>
  <div></div>
</div>
<input type="button" value="Add Element" />

这实际上是一个 hack ,可以调整框中的heightmargin

让我知道您对此的反馈。谢谢!