javascript - 如何覆盖禁用的 Material UI TextField 的全局边框颜色样式?
问题描述
我正在尝试覆盖已禁用的 Mui TextField 组件的全局样式,但我无法更改边框颜色。
如果该字段被禁用,我已经设法更改标签颜色,但不是边框颜色。这是我到目前为止所拥有的:
export const theme = createMuiTheme({
overrides: {
// For label
MuiInputLabel: {
root: {
'&$disabled': {
color: '#000000',
},
},
},
// For border color of field (doesn't work)
MuiTextField: {
root: {
'&$disabled': {
borderColor: '#FFFFFF'
},
},
},
},
});
我尝试了各种变化,包括,
MuiOutlinedInput: {
root: {
fieldset: {
borderColor: '#FFFFFF',
},
}
}
解决方案
边框是从fieldset
元素中获取的。如果根据您的需要,您可以设置样式:
MuiInputBase: {
root: {
"&$disabled": {
'& fieldset.MuiOutlinedInput-notchedOutline': {
borderColor: "blue",
background: "grey"
}
}
}
}
您可以在这里找到一个工作示例:https ://codesandbox.io/s/material-styling-disabled-textfield-ckp14?file=/demo.js
以下是如何自己做的“演练”:
- 检查html输出:
- 在新标签中打开图像以检查标记。
如您所见 - 标签实际上不是 fieldset 标签的父标签,它是绘制边框的标签。 - 字段
div.MuiInputBase
集&$disabled
在MuiInputBase
. - 至于
& fieldset
-fieldset
元素是 - 的子元素,MuiInputBase
因此 the&
和标记名之间的空格表示这是一个子元素。 - fieldset 元素有,
MuiOutlinedInput-notchedOutline
所以我用它作为相关的选择器。您可能只使用.MuiOutlinedInput-root.Mui-disabled fieldset
没有最后一个选择器。试试看 :-)。
推荐阅读
- javascript - Angular 7 - 只有“dist”文件夹在浏览器上呈现,而不是带有 nodejs 的“src”文件夹
- android - java.lang.NullPointerException:第二个元素为空
- python-3.x - Python Dice : Avoiding Triple Repetitions
- python-3.x - Pandas 数据框列名似乎错误
- pandas - 如何修复python中的“数据必须是一维”异常
- debugging - 如何在调试时使用 ubuntu 监控 ARM 控制器上的实时数据
- python - 创建具有特殊类型的列表 - Spyder 错误“未定义名称'脚本'”
- react-native - 如何在 react-native 的模式中使用选项卡
- sed - 使用 sed/cat 在多个文件中匹配模式后从 1 个文件中添加文本
- php - 如何使用 PHP 函数返回值的数量