我是第一次学习Material-UI。我想自定义材质UI的TextField。我可以在未选择文本字段的情况下更改其样式,在聚焦时无法更改其样式。我正在ThemeProvider
将样式注入到组件中。我已经尝试过此代码
import React from "react";
import Checkbox from "@material-ui/core/Checkbox";
import TextField from "@material-ui/core/TextField";
import {
createMuiTheme,
makeStyles,
createStyles,
Theme as AugmentedTheme,
ThemeProvider
} from "@material-ui/core/styles";
import { orange, blue, green } from "@material-ui/core/colors";
const useStyles = makeStyles(theme =>
createStyles({
root: {
color: green[900],
"&.Mui-focused": {
border:"2px solid blue",
}
},
})
);
function CustomCheckbox() {
const classes = useStyles();
return (
<TextField
variant='outlined'
classes={{
root:classes.root,
}}
/>
);
}
const theme = createMuiTheme({
});
export default function CustomStyles() {
return (
<ThemeProvider theme={theme}>
<CustomCheckbox />
</ThemeProvider>
);
}
问题:
如何更改焦点上的TextField样式?帮助将不胜感激
实际上,您可能需要设置的是className InputProps
:
<TextField variant="outlined" InputProps={{ className: classes.root }} />
如果您还想删除字段集的边界(或仅控制该边界),则可以使用以下方法进行设置:
const useStyles = makeStyles(theme =>
createStyles({
root: {
color: green[900],
"&.Mui-focused": {
border: "2px solid red",
'& .MuiOutlinedInput-notchedOutline': {
border: 'none'
}
}
}
})
);
您可以在此处找到一个有效的示例:检查以下内容:https : //codesandbox.io/s/style-text-field-htbem?file=/src/App.js
您可以在此处找到有关MUI与Input组件一起使用的不同类的更多信息:https : //material-ui.com/api/input/#css
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句