【发布时间】:2021-11-22 21:19:14
【问题描述】:
我想创建一个这样的布局:
| test | test | test |
| data-0 | data-1 | data-2 |
| test | test | test |
| data-3 | data-4 | data-5 |
但是下面的代码会产生这个:
| test | test | test | test | test | test |
| data-0 | data-1 | data-2 | data-3 | data-4 | data-5 |
此示例显示了 3 列、2*2 行和 6 个项目的布局。在实践中,我想使用 10 列、auto*2 行和动态数量的项目。作为奖励,如果列的数量根据可用宽度进行调整,那就太棒了。问题似乎是溢出元素只是添加到具有给定名称的第一行,而不是具有给定名称的第一个非完整行。
当前使用 react 的实现:
const items = new Array(6)
.fill(undefined)
.map((e, i) => ({ title: "test", data: "data-" + i }));
const root = (
<div
style={{
display: "grid",
gridTemplateColumns: "repeat(3, auto)",
gridTemplateRows: "repeat(2, [title] auto [data] auto)",
}}
>
{items.map((item, i) => (
<React.Fragment key={i}>
<div style={{ gridRow: "title" }}>{item.title}</div>
<div style={{ gridRow: "data" }}>{item.data}</div>
</React.Fragment>
))}
</div>
);
ReactDOM.render(root, document.getElementById("root"));
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/16.6.3/umd/react.production.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/16.6.3/umd/react-dom.production.min.js"></script>
<div id="root"></div>
【问题讨论】: