【发布时间】:2020-07-23 05:13:01
【问题描述】:
我一直在尝试制作砖石类型布局,因此我为 div 指定了随机高度和颜色,但 div 似乎有一个 y 轴边距。我希望 div 具有统一的边距,以便它们看起来更像砖石布局。这段代码我哪里出错了?
import React from "react";
import "./styles.scss";
const colors = ["palevioletred", "red", "green", "blue", "yellow", "orange"];
const getRandomItem = items => {
return items[getUniqueFromRange(0, items.length)];
};
const getUniqueFromRange = (min, max) => {
return Math.floor(min + Math.random() * (max - min + 1));
};
export default class App extends React.Component {
render() {
return (
<div class="wrapper">
{Array.from({ length: 30 }).map((item, index) => (
<div
key={index}
style={{
background: getRandomItem(colors),
height: getUniqueFromRange(100, 200)
}}
/>
))}
</div>
);
}
}
* { box-sizing: border-box; }
body {
margin: 40px;
background-color: #fff;
color: #444;
font: 2em Sansita, sans-serif;
}
.wrapper {
display: flex;
flex-wrap: wrap;
}
.wrapper > * {
flex: 1 1 230px;
border: 5px solid orange;
border-radius: 5px;
margin: 10px;
padding: 10px 20px;
background-color: red;
color: #fff;
}
【问题讨论】:
-
我认为你不能使用
row的弹性方向,但你必须使用column的弹性方向:w3bits.com/flexbox-masonry -
不幸的是,我认为你不能坚持使用默认的弹性方向
row,所以你需要在某个地方使用flex-direction: column。查看我在答案中提供的代码框。 Alex Haszard 似乎有和我类似的方法。
标签: javascript html css reactjs