在使用 material-ui TextField 时,我希望 TextField 是裸露的(没有下划线)。我确实知道使用 material-ui 中的 InputBase 可以实现这一点,但我有点需要使用 TextField API 来实现这一点,但我没有在 API 指南中找到这样做的方法。
如何从 Material-UI 中删除 TextField 的下划线?
IT技术
css
reactjs
material-ui
2021-03-24 13:20:48
2个回答
您还可以使用InputProps
TextField 组件上的prop 通过将disableUnderline
属性设置为 来实现此目的true
。
<TextField
fullWidth
placeholder="Search..."
InputProps={{ disableUnderline: true }}
/>
即使这是目前已接受的答案,请改为查看其他答案(使用disableUnderline
props)。我在最近写了一个关于如何自定义下划线的答案(使用类似于这个答案的方法)之后写了这个答案,并且错过了一个专门用于删除下划线的属性。
下面是如何删除下划线的示例。:before
用于默认和悬停样式并:after
用于聚焦样式,因此需要为这两种情况删除边框。
多个 & 符号(例如"&&&:before"
)增加了规则的CSS 特异性,使其胜过默认样式(例如&:hover:not($disabled):before
)。
import React from "react";
import ReactDOM from "react-dom";
import TextField from "@material-ui/core/TextField";
import { makeStyles } from "@material-ui/core/styles";
const useStyles = makeStyles({
underline: {
"&&&:before": {
borderBottom: "none"
},
"&&:after": {
borderBottom: "none"
}
}
});
function App() {
const classes = useStyles();
return <TextField defaultValue="default text" InputProps={{ classes }} />;
}
const rootElement = document.getElementById("root");
ReactDOM.render(<App />, rootElement);