如何更改Material-UI自动完成列表的样式?

我想更改 Material-UI 中自动完成组件的列表/下拉列表(不是输入)的样式。我正在使用材料样式进行造型。

我希望这个列表在背景中更明显,所以可能会增加框阴影。

我怎样才能做到这一点?

回答

这样做的一种方式是通过调整elevation的的Paper所用组件Autocomplete。默认高程为 1。下面的示例通过在自定义Paper组件 ( CustomPaper) 中指定该值来使用值 8,然后通过 的PaperComponentprop提供该值Autocomplete

import React from "react";
import TextField from "@material-ui/core/TextField";
import Autocomplete from "@material-ui/lab/Autocomplete";
import Paper from "@material-ui/core/Paper";

const CustomPaper = (props) => {
  return <Paper elevation={8} {...props} />;
};
export default function ComboBox() {
  return (
    <Autocomplete
     
      options={top100Films}
      getOptionLabel={(option) => option.title}
      style={{ width: 300 }}
      PaperComponent={CustomPaper}
      renderInput={(params) => (
        <TextField {...params} label="Combo box" variant="outlined" />
      )}
    />
  );
}

如果elevationprop 没有给你你想要的外观,你可以通过classesprop自定义 Paper 组件的样式,Autocomplete如下例所示,为了演示目的,它使用了一个非常丑陋的边框,但你可以进行任何你想要的 CSS 更改使用相同的方法。

import React from "react";
import TextField from "@material-ui/core/TextField";
import Autocomplete from "@material-ui/lab/Autocomplete";
import { makeStyles } from "@material-ui/core/styles";

const useStyles = makeStyles({
  paper: {
    border: "5px solid black"
  }
});
export default function ComboBox() {
  const classes = useStyles();
  return (
    <Autocomplete
     
      options={top100Films}
      getOptionLabel={(option) => option.title}
      style={{ width: 300 }}
      classes={{ paper: classes.paper }}
      renderInput={(params) => (
        <TextField {...params} label="Combo box" variant="outlined" />
      )}
    />
  );
}


以上是如何更改Material-UI自动完成列表的样式?的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>