reactjs - 覆盖材质 UI 按钮文本
问题描述
Material UI 按钮默认按钮内的文本为大写。我想用按钮覆盖文本,使其与我键入的文本相同,而不是大写。
我试图通过使用 texttransform 来覆盖样式 - 无
viewButton:
{
backgroundColor: "#00D2BC",
radius: "3px",
color: "#FFFFFF",
texttransform: "none"
}
<Button
className={classes.viewButton}
data-document={n.id}
onClick={this.handleView}
>
View Document
</Button>
有人能帮忙吗。
谢谢
解决方案
我在您问题中的代码中看到的唯一问题是您有“文本转换”而不是“文本转换”。
按钮的这一方面由主题(此处、此处和此处)控制,因此也可以通过主题进行更改。我在下面的代码中演示了这两种方法。
import React from "react";
import ReactDOM from "react-dom";
import {
makeStyles,
createMuiTheme,
MuiThemeProvider
} from "@material-ui/core/styles";
import Button from "@material-ui/core/Button";
const useStyles = makeStyles({
button: {
textTransform: "none"
}
});
const defaultTheme = createMuiTheme();
const theme = createMuiTheme({
typography: {
button: {
textTransform: "none"
}
}
});
function App() {
const classes = useStyles();
return (
<MuiThemeProvider theme={defaultTheme}>
<Button>Default Behavior</Button>
<Button className={classes.button}>Retain Case Via makeStyles</Button>
<MuiThemeProvider theme={theme}>
<Button>Retain Case Via theme change</Button>
</MuiThemeProvider>
</MuiThemeProvider>
);
}
const rootElement = document.getElementById("root");
ReactDOM.render(<App />, rootElement);
这是一个类似的示例,但适用于 Material-UI 的 v5:
import React from "react";
import ReactDOM from "react-dom";
import { styled, createTheme, ThemeProvider } from "@material-ui/core/styles";
import Button from "@material-ui/core/Button";
const StyledButton = styled(Button)(`
text-transform: none;
`);
const defaultTheme = createTheme();
const theme1 = createTheme({
typography: {
button: {
textTransform: "none"
}
}
});
const theme2 = createTheme({
components: {
MuiButton: {
styleOverrides: {
root: {
textTransform: "none"
}
}
}
}
});
function App() {
return (
<ThemeProvider theme={defaultTheme}>
<Button>Default Behavior</Button>
<StyledButton>Retain Case Via styled</StyledButton>
<ThemeProvider theme={theme1}>
<Button>Retain Case Via theme change</Button>
</ThemeProvider>
<ThemeProvider theme={theme2}>
<Button>Retain Case Via alternate theme change</Button>
</ThemeProvider>
</ThemeProvider>
);
}
const rootElement = document.getElementById("root");
ReactDOM.render(<App />, rootElement);
推荐阅读
- python - 如何在sklearn中计算交叉验证的每个模型中的特征重要性
- sql - 创建 FIFO 队列
- python - 图像处理:实时 FedEx 标志检测器的算法改进
- java - 如何查看父母姓名
- python - 如何在 Django 中使用 highcharts 显示年增长率图表?
- javascript - 我收到一个有效的函数的 422 错误
- google-apps-script - 使用应用程序脚本将图像插入 Google Doc 时显示无效的图像数据
- r - 点的 R 多边形向量
- python - 是否有等效的 for__getattr__ 来拦截对 python 类的静态属性的访问?
- reactjs - 使用 useMemo 代替 React.memo 语法问题