reactjs - React MUI - 选定选项卡的覆盖样式不起作用
问题描述
我有一个用React mui v3构建的项目。在我的组件中,我想通过将边框底部设置为与其他选项卡不同的值来覆盖所选选项卡的样式。我首先尝试在组件级别通过使用新样式设置类和选定属性来做到这一点:
tab: {
color: '#077197',
fontWeight: 'bold',
fontSize: '0.9rem',
borderBottom: `1px solid ${theme.palette.divider}`,
},
selected: {
border: `1px solid ${theme.palette.divider}`,
borderBottom: '1px solid white',
background: 'white',
},
并在选项卡上使用它:
<Tab value="1" label="First value"
classes={{root: classes.tab, selected: classes.selected}}/>
但是,在控制台中,我可以看到选定的类被选项卡选定的样式覆盖。我也尝试在主题级别上做到这一点,方法是设置MuiTab
为:
MuiTab: {
selected: {
backgroundColor: "white",
border: "1px solid white",
color: orange[700],
"&:hover": {
color: green[700]
}
}
}
这是示例。但是,这不起作用,您如何覆盖所选选项卡的样式?
解决方案
在您的示例中,您可以在控制台中阅读:
Material-UI:MuiTab
组件增加了selected
内部状态的 CSS 特异性。你不能像这样覆盖它:
{
"root": {
"&:hover": {
"backgroundColor": "white",
"color": "#c2185b",
"border": "1px solid black"
}
},
"selected": {
"backgroundColor": "white",
"border": "1px solid white",
"color": "#f57c00",
"&:hover": {
"color": "#388e3c"
}
}
}
相反,您需要使用 $ruleName 语法:
{
"root": {
"&$selected": {
"backgroundColor": "white",
"border": "1px solid white",
"color": "#f57c00",
"&:hover": {
"color": "#388e3c"
}
}
}
}
推荐阅读
- android - 将选定的复选框值存储在字符串数组中
- networking - 访问 googleapis.google.com 会给出“无主机路由”
- php - PHP 重新排序
- python - 无法安装 python-dev
- javascript - 通过 netlify 函数发送电子邮件
- c# - 如何在c#中查找两个字符串之间的字符串
- python-3.x - 以下代码长期以来一直给我相同的输出
- r - 如何选择我的 x 分类变量(暴露)的前 84 行来使用 r 计算我的连续 y 变量的平均值?
- ubuntu-18.04 - Apache Drill 未在嵌入模式下运行(ubuntu)
- c++ - 递归函数,几何级数