如何使用flexbox进行两列布局,并在列中的项目之间使用相同的间距?

时间:2018-03-05 21:28:00

标签: html css css3 flexbox

您好!您能帮助我吗?我试图在同一列中的项目之间进行两个列布局。 Two columns layout



.flex {
  margin: 0;
  padding-left: 0;
  list-style: none;
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  justify-content: space-between;
  align-content: center;
}

.item {
  width: 45%;
  height: 200px;
  margin-bottom: 10px;
  background-color: navy;
}

.item:nth-child(1) {
  height: 210px;
}

.item:nth-child(2) {
  height: 500px;
}

.item:nth-child(3) {
  height: 360px;
}

.item:nth-child(4) {
  height: 400px;
}

.item:nth-child(5) {
  height: 150px;
}

<div class="flex">
  <div class="item"></div>
  <div class="item"></div>
  <div class="item"></div>
  <div class="item"></div>
  <div class="item"></div>
  <div class="item"></div>
  <div class="item"></div>
</div>
&#13;
&#13;
&#13;

感谢您提出的所有好建议。你的帮助!

1 个答案:

答案 0 :(得分:1)

您可以使用column-count代替flexbox。在这种情况下,不需要实现灵活的盒子布局。您不是要保持相同的尺寸或调整任何奇数对齐。

.flex
{
  margin: 0;
  padding-left: 0;
  list-style: none;
  column-count: 2;
  column-gap: 10px;
}

.item{
  height: 200px;
  margin-bottom: 10px;
  background-color: navy;
  break-inside: avoid;
}

.item:nth-child(1){height: 210px;}
.item:nth-child(2){height: 500px;}
.item:nth-child(3){height: 360px;}
.item:nth-child(4){height: 400px;}
.item:nth-child(5){height: 150px;}
<div class="flex">
  <div class="item"></div>
  <div class="item"></div>
  <div class="item"></div>
  <div class="item"></div>
  <div class="item"></div>
  <div class="item"></div>
  <div class="item"></div>
</div>

这是一种使用列间隙百分比的方法。它使用0px column-gap和容器上的负边距来调整左侧和右侧的超出边距。

.flex
{
  margin: 0;
  padding-left: 0;
  list-style: none;
  column-count: 2;
  column-gap: 0;
  margin: 0 -1.25%;
}

.item{
  height: 200px;
  margin-bottom: 10px;
  background-color: navy;
  break-inside: avoid;
  margin: 0 2.5% 5%;
}

.item:nth-child(1){height: 210px;}
.item:nth-child(2){height: 500px;}
.item:nth-child(3){height: 360px;}
.item:nth-child(4){height: 400px;}
.item:nth-child(5){height: 150px;}
<div class="flex">
  <div class="item"></div>
  <div class="item"></div>
  <div class="item"></div>
  <div class="item"></div>
  <div class="item"></div>
  <div class="item"></div>
  <div class="item"></div>
</div>