【发布时间】:2020-10-12 18:30:14
【问题描述】:
我想尝试重新创建一个图像库,它具有基于数组中图像数量的行数,而且每行的列/图像可以是单个大图像、两个较小的图像或 3 个甚至更小的图像.看起来他们正在使用 flexbox 和 css 网格,但我的大脑在试图弄清楚这是如何完成的。它几乎似乎是在 1、2 或 3 个图像宽的列上随机生成的,但每次加载页面时结果都是相同的。我是 CSS 网格和 flexbox 的新手,因此很难弄清楚它们如何根据图像数量动态生成此布局。我正在使用 react、styled-components、css grid、flexbox 等。
图片库和互动展示示例: https://imgur.com/9n5vo3l
他们使用的网格似乎有 7 列
grid-template-columns: 1fr 1fr 1fr 1fr 1fr 1fr 1fr
我假设这些行是自动生成的,但让我失望的是列。
网格中的每个单元格或项目都可以有grid-column: 的开始/结束
1/7 用于大图或
1/4 然后4/7 用于两个并排图像或
1/3 3/5 5/7 三个并排的图像
有谁知道这样的效果是如何动态实现的?
【问题讨论】:
-
这不是一个普通的 CSS。更好的使用 JS 库,比如miromannino.github.io/Justified-Gallery
标签: javascript css reactjs flexbox css-grid