【问题标题】:Two columns flex-box layout两列弹性盒布局
【发布时间】:2017-10-29 17:48:47
【问题描述】:

我需要创建包含两列项目列表的布局。就像我在下面展示的:

.container {
  border: 1px solid red;
  height: 300px;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  flex-wrap: wrap;
}

.item {
  border: 1px dashed blue;
  height: 50px;
}
<div class="container">
  <div class="item">1</div>
  <div class="item">2</div>
  <div class="item">3</div>
  <div class="item">4</div>
  <div class="item">5</div>
  <div class="item">6</div>
  <div class="item">7</div>
  <div class="item">8</div>
</div>
但是这样的布局是有问题的。如果只有 1 个项目 - 它将占用全宽。即使有一些项目,我也需要保留列。

【问题讨论】:

标签: html css flexbox


【解决方案1】:

您可以为项目设置最大宽度,等于 50%。无论如何,这将保持它几乎相同的宽度。我说几乎是因为你也设置了边界。

为了保持宽度完全相同,还必须为 item 设置 box-sizing:border-box。

因此,您的代码将是:

.item {
  border: 1px dashed blue;
  height: 50px;
  box-sizing: border-box;
  max-width: 50%;
}

.container {
  border: 1px solid red;
  height: 300px;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  flex-wrap: wrap;
}

.item {
  border: 1px dashed blue;
  height: 50px;
  box-sizing: border-box;
  max-width: 50%;
}
<div class="container">
  <div class="item">1</div>
  <div class="item">2</div>
  <div class="item">3</div>
  <div class="item">4</div>
  <div class="item">5</div>
  <div class="item">6</div>
  <div class="item">7</div>
  <div class="item">8</div>
</div>

【讨论】:

  • 我们如何将其限制为仅两列,使其不会水平延伸?像这样share.getcloudapp.com/jkuPArlo
  • 谷歌告诉我这个答案是 1641 天。我没有要求那种特殊性,但我有点挖掘它。这个答案刚刚挽救了我 2021 年网站开发的成绩
猜你喜欢
  • 2020-08-12
  • 1970-01-01
  • 1970-01-01
  • 2011-05-26
  • 1970-01-01
  • 2015-09-09
  • 1970-01-01
  • 2018-02-25
  • 2011-05-18
相关资源
最近更新 更多