您可以使用MediaQuery组件和Box组件而不是Flex来实现这一点,因为我们需要将布局从display: flex;
更改为column-count: 2;
,并更改writing-mode: vertical-lr;
才能获得结果.
import { ScrollArea, Button, Box, MediaQuery } from "@mantine/core";
const services = [
"Frontend",
"Backend",
"FullStack",
"DevOps",
...
];
export default function App() {
const boxStyles = {
display: "flex",
justifyContent: "flex-start",
flexWrap: "wrap",
columnGap: 8,
rowGap: 10
};
const boxStylesSM = {
display: "block",
columnCount: 2,
columnGap: 10,
writingMode: "vertical-lr"
};
const buttonStyle = {
display: "flex",
justifyContent: "center",
alignItems: "center",
whiteSpace: "nowrap"
};
const buttonStyleSM = {
marginRight: 8
};
return (
<div className="App">
<ScrollArea type="auto" sx={{ padding: "0.8rem 0.5rem" }}>
<MediaQuery smallerThan="sm" styles={boxStylesSM}>
<Box sx={boxStyles}>
{services.map((service, i) => (
<MediaQuery smallerThan="sm" styles={buttonStyleSM}>
<Button sx={buttonStyle} key={i}>
{service}
</Button>
</MediaQuery>
))}
</Box>
</MediaQuery>
</ScrollArea>
</div>
);
}