【问题标题】:How to remove border of Material UI's DatePicker?如何去除 Material UI 的 DatePicker 的边框?
【发布时间】:2021-06-08 07:37:30
【问题描述】:

这里是日期选择器组件

import React, { Fragment, useState } from "react";
import {
  KeyboardDatePicker,
  MuiPickersUtilsProvider
} from "@material-ui/pickers";
import DateFnsUtils from "@date-io/date-fns";
import makeStyles from "@material-ui/styles/makeStyles";

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

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

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

export default InlineDatePickerDemo;

来自codeSandbox Link,谁能告诉我如何从所有方面移除边框? 虽然我设法知道 .MuiInput-underline:before 样式类负责边框宽度,但不知道该类在 makeStyles 中的位置。

【问题讨论】:

标签: javascript reactjs datepicker material-ui


【解决方案1】:

您只需要编辑一点KeyboardDatePicker 元素:

  1. 删除inputVariant="outlined"

  2. 添加

InputProps={{
  disableUnderline: true
}}

CodeSandbox

【讨论】:

【解决方案2】:
const useStyles = makeStyles({
  root: {
    "& .MuiInputBase-root": {
      padding: 0,
      "& .MuiButtonBase-root": {
        padding: 0,
        paddingLeft: 10,
      },
      "& .MuiInputBase-input": {
        padding: 15,
        paddingLeft: 0
      },
      "& .MuiOutlinedInput-notchedOutline": {
        border: 'none'
      }
    }
  }
});

【讨论】:

    【解决方案3】:

    只需删除 inputVariant="outlined" 道具。所以你的代码变成了:

    <KeyboardDatePicker
        className={classes.root}
        autoOk
        variant="inline"
        label="With keyboard"
        format="MM/dd/yyyy"
        value={selectedDate}
        InputAdornmentProps={{ position: "start" }}
        onChange={(date) => handleDateChange(date)}
      />
    

    Here您的代码已修改。

    【讨论】:

    • 感谢您的回答,但我什至不想要那个底部边框。
    【解决方案4】:

    在 MUI 中,您可以将 variant="standard" 添加到 TextField :

     renderInput={(params) => <TextField variant="standard" {...params} />}
    

    完全:

     <DesktopDatePicker
                    inputFormat="MM/dd/yyyy"
                    className="mt-0 w-100"
                    required={required}
                    margin="normal"
                    id="date-picker-dialog"
                    label={label}
                    format="dd/MM/yyyy"
                    value={value}
                    onChange={handleDateChange}
                    renderInput={(params) => <TextField variant="standard" {...params} />}
                />
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-11-02
      • 2022-08-23
      • 2021-11-21
      • 2020-07-28
      • 1970-01-01
      • 2020-12-22
      • 2016-07-05
      • 2020-03-13
      相关资源
      最近更新 更多