Material UI:如何更改 Select 组件的边框颜色?

big*_*ato 6 css reactjs material-ui

我正在尝试从 Material UI 自定义 Select 组件。

它看起来是这样的:

在此输入图像描述

但是,当选择组件获得焦点时,我想将边框颜色从材质 UI 的蓝色更改为自定义红色。

我尝试设置样式,但它根本没有做任何事情

import FormControl from '@material-ui/core/FormControl';
import InputLabel from '@material-ui/core/InputLabel';
import MuiSelect from '@material-ui/core/Select';
import MenuItem from '@material-ui/core/MenuItem';
import { makeStyles } from '@material-ui/core/styles';

const useStyles = makeStyles((theme) => ({
  formControl: {
    margin: theme.spacing(1),
    minWidth: 120,
  },
  select: {
    borderColor: '#FF0000',      //<------------ this does nothing
  },
}));

const Select = () => {
  const classes = useStyles();
  return (
    <FormControl variant="outlined" className={classes.formControl}>
      <InputLabel>Months</InputLabel>
      <MuiSelect label="Months" className={classes.select}>
        <MenuItem value="1">January</MenuItem>
        <MenuItem value="2">February</MenuItem>
        <MenuItem value="3">March</MenuItem>
        <MenuItem value="4">April</MenuItem>
      </MuiSelect>
    </FormControl>
  );
};

Select.propTypes = {};

export default Select;
Run Code Online (Sandbox Code Playgroud)

Ron*_*bar 14

尝试这个:

const useStyles = makeStyles((theme) => ({
  formControl: {
    margin: theme.spacing(1),
    minWidth: 120,
  },
  select: {
    '&.Mui-focused .MuiOutlinedInput-notchedOutline': {
        borderColor: 'red',
    },
  },
}));

Run Code Online (Sandbox Code Playgroud)


Dra*_*era 9

如果有人对最新版本的 MUI 5 感兴趣。

import {
  Select,
} from '@mui/material';
import { SxProps } from '@mui/material/styles';
import classes from './component.module.css';

const styles: SxProps = {
  select: {
    '.MuiOutlinedInput-notchedOutline': {
      borderColor: '#color',
    },
    '&:hover .MuiOutlinedInput-notchedOutline': {
      borderColor: '#color',
      borderWidth: '0.15rem',
    },
  },
};

<Select
     variant="outlined"
     sx={styles.select}
     inputProps={{
       classes: {
         icon: classes.icon,
           },
       }}
  >
Run Code Online (Sandbox Code Playgroud)

对于图标,可以创建一个单独的文件component.module.css

.icon {
    fill: #color;
}
Run Code Online (Sandbox Code Playgroud)