gpt4 book ai didi

reactjs - 从选择框 React Material UI 中删除蓝色轮廓

转载 作者:行者123 更新时间:2023-12-04 01:29:02 28 4
gpt4 key购买 nike

我在我的项目中使用 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>
);
}

最佳答案

您对“重点”样式的覆盖有一个小问题。

你有过:

    "&.Mui-focused .MuiOutlinedInput-notchedOutline": {
border: "1px solid #484850",
borderRadius: "5px 5px 0 0"
},

但是 Mui-focused正在添加到 FormControl 的子项中而不是 FormControl本身(应用这个类的地方),所以 &.Mui-focused永远不匹配任何东西。相反,您需要它类似于您对“禁用”样式的覆盖。您需要在 & 符号后留一个空格,以便 .Mui-focused目标是 FormControl 的后代:
    "& .Mui-focused .MuiOutlinedInput-notchedOutline": {
border: "1px solid #484850",
borderRadius: "5px 5px 0 0"
},

Edit select-dropdown-hr7yx

关于reactjs - 从选择框 React Material UI 中删除蓝色轮廓,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61344448/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com