Sun*_*bar 7 reactjs material-ui
我在我的项目中使用 React Material UI Select 组件。我已经成功获得了大部分所需的自定义样式,但是当下拉纸张可见时,或者选择一个选项并将鼠标移离该框时,选择框周围仍然有一个蓝色轮廓(但它是仍然是焦点)。我需要定位哪个元素才能从选择框中删除蓝色轮廓?我尝试过针对不同的部分并使用,outline: none但我似乎找不到解决方案。我还阅读了 React Material 文档并搜索了 Stackoverflow,但找不到答案。任何帮助将非常感激。这是选择框的演示:
https://codesandbox.io/s/select-dropdown-hr7yx-hr7yx?file=/src/App.js
import { makeStyles } from "@material-ui/core/styles";
import React from "react";
import "./styles.css";
import FormControl from "@material-ui/core/FormControl";
import Select from "@material-ui/core/Select";
import MenuItem from "@material-ui/core/MenuItem";
const useStyles = makeStyles(theme => ({
quantityRoot: {
color: "#FFFFFF",
backgroundColor: "#303039",
opacity: 0.6,
borderRadius: "5px",
"&:hover": {
backgroundColor: "#1E1E24",
borderRadius: "5px",
opacity: 1
},
"&:focus-within": {
backgroundColor: "#1E1E24",
borderRadius: "5px",
opacity: 1
},
"& .MuiOutlinedInput-notchedOutline": {
border: "1px solid #484850"
},
"&:hover .MuiOutlinedInput-notchedOutline": {
border: "1px solid #484850"
},
"&.Mui-focused .MuiOutlinedInput-notchedOutline": {
border: "1px solid #484850",
borderRadius: "5px 5px 0 0"
},
"& .Mui-disabled": {
color: "#FFFFFF",
opacity: 0.6
},
"& .Mui-disabled .MuiOutlinedInput-notchedOutline": {
border: "1px solid #484850"
}
},
selectRoot: {
color: "#FFFFFF"
},
icon: {
color: "#FFFFFF"
},
selectPaper: {
backgroundColor: "#1E1E24",
border: "1px solid #484850",
borderRadius: "5px",
color: "#FFFFFF",
"& li:hover": {
backgroundColor: "#303039"
}
}
}));
export default function App() {
const classes = useStyles();
return (
<div className="App">
<FormControl
variant="outlined"
classes={{
root: classes.quantityRoot
}}
>
<Select
classes={{
root: classes.selectRoot,
icon: classes.icon
}}
MenuProps={{ classes: { paper: classes.selectPaper } }}
inputProps={{
name: "gpuChildQuantity",
id: "gpuChildQuantity"
}}
>
{[...Array(8)].map((e, i) => {
return (
<MenuItem key={i} value={i + 1}>
{i + 1}
</MenuItem>
);
})}
</Select>
</FormControl>
</div>
);
}
Run Code Online (Sandbox Code Playgroud)
Rya*_*ell 11
您只是在覆盖“集中”样式时遇到了一个小问题。
你有过:
"&.Mui-focused .MuiOutlinedInput-notchedOutline": {
border: "1px solid #484850",
borderRadius: "5px 5px 0 0"
},
Run Code Online (Sandbox Code Playgroud)
但Mui-focused被添加到 的子级FormControl而不是其FormControl本身(应用此类的地方),因此&.Mui-focused永远不会匹配任何内容。相反,您需要这类似于您对“禁用”样式的覆盖。您需要在 & 符号后添加一个空格,以便.Mui-focused定位 的后代FormControl:
"& .Mui-focused .MuiOutlinedInput-notchedOutline": {
border: "1px solid #484850",
borderRadius: "5px 5px 0 0"
},
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
22024 次 |
| 最近记录: |