首页 > 解决方案 > 如何更改 Material UI 的日期选择器的填充?

问题描述

是codeandbox链接

function InlineDatePickerDemo(props) {
  const [selectedDate, handleDateChange] = useState(new Date());

  return (
    <Fragment>
      <MuiPickersUtilsProvider utils={DateFnsUtils}>
        <KeyboardDatePicker
          style={{ padding: "20px" }}
          autoOk
          variant="inline"
          inputVariant="outlined"
          label="With keyboard"
          format="MM/dd/yyyy"
          value={selectedDate}
          InputAdornmentProps={{ position: "start" }}
          onChange={(date) => handleDateChange(date)}
        />
      </MuiPickersUtilsProvider>
    </Fragment>
  );
}

我想减少日期选择器框内的间隙,但提供自定义样式并没有影响。

我很想知道为什么样式不起作用以及解决此类问题的方法是什么。

标签: cssreactjsdatepickermaterial-uireact-material

解决方案


您所做的是为父组件设置样式。为了改变选取器内部组件之间的间距,您需要覆盖子组件中的以下类:

const useStyles = makeStyles({
  root: {
    "& .MuiInputBase-root": {
      padding: 0,
      "& .MuiButtonBase-root": {
        padding: 0,
        paddingLeft: 10
      },
      "& .MuiInputBase-input": {
        padding: 15,
        paddingLeft: 0
      }
    }
  }
});
const classes = useStyles();

return (
  <MuiPickersUtilsProvider utils={DateFnsUtils}>
    <KeyboardDatePicker
      className={classes.root}
      {...}
    />
  </MuiPickersUtilsProvider>
);

现场演示

编辑 64336432/how-to-change-padding-of-material-uis-datepicker


推荐阅读