html - flex 包装 : nowrap with row and column

标签 html css flexbox alignment

我有一个带有 nowrap 流的 flex 容器,有些元素可能以列开始,我该如何管理它们?这就像树状布局。 最终结果可能是这样的图像: enter image description here

这是一个 stackblitz和片段:

.container{
  display: flex;
  width: 100%;
  flex-wrap: nowrap;
  padding: 5px;
  border:2px solid gray;
}

.item{
  width: 150px;
  flex:1 1 150px;
  border: 1px solid green;
  margin-right: 2px;
}
<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 class="item">9</div>
</div>

最佳答案

我可以想到 CSS 网格布局来轻松实现此布局:

  • 使用grid-auto-flow: column使元素按列方向放置,

  • 对特定的item元素使用grid-rowgrid-column来实现所需的配置。

请看下面的演示:

.container{
  display: inline-grid; /* inline grid container */
  grid-auto-flow: column; /* items placed vertically */
  padding: 5px;
  border: 2px solid gray;
}

.item:nth-child(2) {
  grid-row: 1;
}
.item:nth-child(4),
.item:nth-child(5) {
  grid-row: 2;
}

.item:last-child {
  grid-row: 4;
}

.item{
  width: 150px;
  border: 1px solid green;
  margin-right: 2px;
}
<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>

关于html - flex 包装 : nowrap with row and column,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56075887/

相关文章:

html - CSS:具有顶部和中心对齐的 div 的 flexbox 容器

CSS Flex,最后两项与其余项的宽度不同

html - 使用 CSS 使 HTML 文本字段和按钮具有相同的高度 - 不起作用

javascript - js/css 添加多个背景

将类添加到 (li) Parent 的 JavaScript

javascript - 执行动态添加的社交网络小部件

html - Bootstrap 3.1.0 导航栏上的全宽输入组

css - 解析和比较两个 CSS 样式表的工具

javascript - 替换页面中的特定文本

javascript - Flexbox masonry 响应式