如果您在以下位置查看这些组件:https://material-ui.com/components/selects/,则会看到单击该标签时,标签会向上移动并最小化,但也会更改颜色(以及定义文本底部的边框/线条)
我想出了如何更改所有颜色的方法,除了单击或聚焦时使文字最小化的文字。如果有人可以帮助我。真让我发疯
奖励积分,如果您能解释得出此结论的方式,那么我也可以自己学习如何做到这一点。
const useStyles = makeStyles(theme => ({
root: {
display: 'flex',
flexWrap: 'wrap',
},
formControl: {
margin: theme.spacing(1),
minWidth: 120,
},
inputLabel: {
color: 'lightgray',
focused: {
color: 'orange' // does not work
}
},
select: {
color: 'white',
'&:before': { // changes the bottom textbox border when not focused
borderColor: 'red',
},
'&:after': { // changes the bottom textbox border when clicked/focused. thought it would be the same with input label
borderColor: 'green',
}
}
}));
<FormControl className={classes.formControl}>
<InputLabel
className={classes.inputLabel}
>Number of Lists</InputLabel>
<Select
className={classes.select}
value={values.age}
onChange={handleChange}
inputProps={{
name: 'age',
id: 'age-simple',
}}
>
<MenuItem value={1}>One</MenuItem>
<MenuItem value={2}>Two</MenuItem>
</Select>
</FormControl>
答案 0 :(得分:1)
您可以通过以下方式(假设Material-UI v4或更高版本)来实现:
inputLabel: {
color: "lightgray",
"&.Mui-focused": {
color: "orange"
}
},
以下是相关文档:https://material-ui.com/customization/components/#pseudo-classes
在版本4之前,您需要以下内容:
// This is similar to Brad Ball's answer, but this nested syntax ensures proper specificity for the focused CSS.
inputLabel: {
color: "lightgray",
"&$inputFocused": {
color: "orange"
}
},
inputFocused: {}
// then in the JSX:
<InputLabel
className={classes.inputLabel}
classes={{ focused: classes.inputFocused }}
>
答案 1 :(得分:0)
以下是使用focused的语法:
const useStyles = makeStyles(theme => ({
root: {
display: "flex",
flexWrap: "wrap"
},
formControl: {
margin: theme.spacing(1),
minWidth: 120
},
inputLabel: {
color: "lightgray"
},
inputFocused: {
color: "orange" // does not work
},
select: {
color: "white",
"&:before": {
// changes the bottom textbox border when not focused
borderColor: "red"
},
"&:after": {
// changes the bottom textbox border when clicked/focused. thought it would be the same with input label
borderColor: "green"
}
}
}));
<FormControl className={classes.formControl}>
<InputLabel
className={classes.inputLabel}
classes={{ focused: classes.inputFocused }}
>
Number of Lists
</InputLabel>
<Select
className={classes.select}
value={values.age}
onChange={handleChange}
inputProps={{
name: "age",
id: "age-simple"
}}
>
<MenuItem value={1}>One</MenuItem>
<MenuItem value={2}>Two</MenuItem>
</Select>
</FormControl>;