reactjs - 使用 Material UI 自定义上一个/下一个分页图标背景颜色
问题描述
我想为 MUI Pagination prev 和 next 图标添加背景颜色,但 MUI 仅公开Pagination
似乎不采用样式对象的元素并将其应用于图标但Pagination
作为一个整体。
这是我首先尝试的:
const useStyles = makeStyles(() => createStyles({
page: {
padding: '0',
},
icon: {
borderRadius: '16px',
padding: '0 6px',
backgroundColor: '#b74d3e',
width: '100%',
height: '100%',
color: '#fff',
},
}));
const classes = useStyles();
应用到Pagination
喜欢
<div className={`${classes.page} ${classes.icon}`}>
<Pagination count={16} />
</div>
导致应用于整个Pagination
元素的所有样式规则。第二个尝试是尝试使用PaginationItem
似乎需要自定义元素 ( component
) 才能在屏幕上显示的元素。我不确定如何提供,是否只需要更改图标背景颜色。
<Pagination
count={16}
renderItem={() => (
<PaginationItem
component={}
classes={{
page: classes.page,
icon: classes.icon,
}}
/>
)}
/>
一个空component
的返回一个错误并且 ReactLink
没有通过一个有效的错误。
如何更改上一个和下一个箭头图标的背景颜色?
解决方案
The easiest way to determine how to style these elements is to inspect them in the browser developer tools to see what CSS classes are applied to these elements which could be used for controlling style overrides. In this case, MuiPaginationItem-icon
seems to be the class you want to target.
Here is a working example:
import React from "react";
import { makeStyles } from "@material-ui/core/styles";
import Pagination from "@material-ui/lab/Pagination";
const useStyles = makeStyles((theme) => ({
root: {
"& > *": {
marginTop: theme.spacing(2)
},
"& .MuiPaginationItem-icon": {
backgroundColor: "yellow"
}
}
}));
export default function BasicPagination() {
const classes = useStyles();
return (
<div className={classes.root}>
<Pagination count={10} />
<Pagination count={10} color="primary" />
<Pagination count={10} color="secondary" />
<Pagination count={10} disabled />
</div>
);
}
Another syntax option is to leverage withStyles
to create a customized version of Pagination
:
import React from "react";
import { makeStyles, withStyles } from "@material-ui/core/styles";
import MuiPagination from "@material-ui/lab/Pagination";
const useStyles = makeStyles((theme) => ({
root: {
"& > *": {
marginTop: theme.spacing(2)
}
}
}));
const Pagination = withStyles({
root: {
"& .MuiPaginationItem-icon": {
backgroundColor: "yellow"
}
}
})(MuiPagination);
export default function BasicPagination() {
const classes = useStyles();
return (
<div className={classes.root}>
<Pagination count={10} />
<Pagination count={10} color="primary" />
<Pagination count={10} color="secondary" />
<Pagination count={10} disabled />
</div>
);
}
推荐阅读
- python - 挖掘数据框以获取唯一字数
- javascript - 锚点覆盖并且没有正确改变颜色,因为不能完全点击
- angular - 从源“http://localhost:4200”访问“http://localhost:9090/api/auth/produits/files”的 XMLHttpRequest 已被 CORS 策略阻止
- java - 如何解析 String.format 将 0 添加到 int
- blazor - 如何在 Blazor 中实现路由守卫?
- java - 尝试用 Java 编写一个方法,该方法将搜索数据库列表并返回一个 Customer 对象,给定一个 customerID
- java - 正则表达式仅在未转义时才匹配字符串中的字符
- mysql - PHP SQL PDO 通配符查询
- xml - 在 XML 中单独转义 &,但忽略 &
- excel - 如何使函数递归