1 回答
TA贡献1863条经验 获得超2个赞
下面是一个示例,显示了在其中指定媒体查询的两种方法makeStyles
(下面是使用 的 v5 示例styled
)。您可以在theme.breakpoints中使用up
、down
、only
和between
函数(它们根据主题中指定的断点为您生成媒体查询字符串),也可以直接使用媒体查询。
import React from "react";
import Button from "@material-ui/core/Button";
import { makeStyles } from "@material-ui/core/styles";
const useStyles = makeStyles(theme => ({
button: {
color: "white",
[theme.breakpoints.down("xs")]: {
marginTop: theme.spacing(1),
backgroundColor: "purple"
},
[theme.breakpoints.between("sm", "md")]: {
marginTop: theme.spacing(3),
backgroundColor: "blue"
},
"@media (min-width: 1280px)": {
marginTop: theme.spacing(5),
backgroundColor: "red"
}
}
}));
export default function App() {
const classes = useStyles();
return (
<Button className={classes.button} variant="contained">
Hello World!
</Button>
);
}
下面是使用 Material-UI v5 的类似示例。这已调整为 usestyled而不是 ,并且和makeStyles的用法已根据这些函数的行为变化进行了调整(现在不包含指定的断点而不是包含,并且结束断点现在也是独占的,因此对于指定的断点需要比 v4 中使用的断点大一)。此外,直接指定的媒体查询的 已从 调整为 ,以匹配v5 中断点的新值。theme.breakpoints.downtheme.breakpoints.betweendownbetweenmin-width1280px1200pxlg
import React from "react";
import Button from "@material-ui/core/Button";
import { styled } from "@material-ui/core/styles";
const StyledButton = styled(Button)(({ theme }) => ({
color: "white",
[theme.breakpoints.down("sm")]: {
marginTop: theme.spacing(1),
backgroundColor: "purple"
},
[theme.breakpoints.between("sm", "lg")]: {
marginTop: theme.spacing(3),
backgroundColor: "blue"
},
"@media (min-width: 1200px)": {
marginTop: theme.spacing(5),
backgroundColor: "red"
}
}));
export default function App() {
return <StyledButton variant="contained">Hello World!</StyledButton>;
}
- 1 回答
- 0 关注
- 70 浏览
添加回答
举报