css - 合适的 CSS 显示每行显示 3 个元素,行数任意?

标签 css angular flexbox grid

我有一个要显示的元素列表。起初我用 display: flex但注意到当换行发生时,元素没有水平对齐。然后我切换到display: grid但这需要我提前知道行数。

什么样的显示适合创建每行有 n 个元素的任意多个元素的网格?

<div class="element">
  <app-check *ngFor="let item of items" [caption]="item.name">
  </app-check>
</div>

div.elements {
  display: ???; ...
}

app-check {
  flex: 1 1 auto; ... ???
}

如果我能以某种方式将元素三个三个地推出,那么上面的 CSS 就可以工作了。我可以在组件代码中使用一些逻辑来做到这一点,但这似乎是一个丑陋的 hack。我更愿意以适当的方式解决它。

最佳答案

对于 3 个元素,你可以用类似的方式来做,只需使用 flex-basis: 33% 作为子元素:

div.element {
    display: flex;
    flex-wrap: wrap;
}

app-check {
    flex: 1 0 33%;
}
<div class="element">
    <app-check *ngFor="let item of items" [caption]="item.name">
    </app-check>
</div>

这是学习flexbox的好地方: https://css-tricks.com/snippets/css/a-guide-to-flexbox/

关于css - 合适的 CSS 显示每行显示 3 个元素,行数任意?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57732281/

相关文章:

javascript - CSS盒子模型问题

html - 响应式设计 - 使用 css 重新排列元素位置

css - 为什么 IE7 中的子导航定位关闭?

html - Bootstrap anchor 页脚

angular - 使用 Chrome 的 Docker 镜像进行 Karma 测试

html - 为什么 flexbox 中的内容会溢出?

html - 如何在一行中在 div 内制作 2 个跨度,以便下一个 div 的内容不会转到第一个 div 的位置?

javascript - Angular,如何对窗口调整大小事件使用react

angular - 将 Angular 的依赖项移至 devDependencies

css - Flexbox 不会在 IE 10 和 11 的表格中换行