【发布时间】:2019-07-09 16:30:13
【问题描述】:
我想在一行中有 3 列,但不是每个新行,当每行的项目等于 1 时,我不希望项目是 100% 宽度。
const Flex = styled.div`
display: flex;
flex-wrap: wrap;
align-items: center;
justify-content: center;
`;
const Item = styled.div`
flex-grow: 1;
flex: 1 1 27%;
height: 30px;
border: 1px solid black;
`;
function App() {
const [num, setNum] = useState(0);
return (
<div className="App">
<h1>{num}</h1>
<button
onClick={() => {
setNum(num + 1);
}}
>
add
</button>
<button onClick={() => setNum(0)}>reset</button>
<Flex>
{[...Array(num)].map(o => (
<Item>{o}</Item>
))}
</Flex>
</div>
);
}
https://codesandbox.io/s/distracted-hellman-jzv9i
例如,100% 不应应用于 num 1、4、7、10、13 等。我可以知道索引何时等于 1,4,7,10,13,但我怎么知道它在新行上?
【问题讨论】:
-
澄清一下:如果一个项目单独排成一行,您是否不希望它是全宽但只占用 1/3 的空间?
-
@trixn 是的.....