Material-UI 选项卡 'selected' 不够具体。
Material-UI Tabs 'selected' isn't specific enough.
此处的代码沙箱:
https://codesandbox.io/s/ypx4qpjvpx
相关位:
const styles = theme => ({
root: {
flexGrow: 1,
backgroundColor: theme.palette.background.paper
},
label: {
fontWeight: "normal"
},
selected: {
fontWeight: "bold"
}
});
<Tabs value={value} onChange={this.handleChange}>
<Tab
label="Item One"
classes={{
label: classes.label,
selected: classes.selected
}}
/>
<Tab
label="Item Two"
classes={{
label: classes.label,
selected: classes.selected
}}
/>
<Tab
label="Item Three"
href="#basic-tabs"
classes={{
label: classes.label,
selected: classes.selected
}}
/>
</Tabs>
我想在这里做的是我需要覆盖默认字体粗细样式,但在选中时,我希望它是粗体。
问题是 - 它们具有相同级别的特异性,并且标签在选择后出现,因此它会覆盖它。
如何在不使用 !important 的情况下选择更多 specific/achieve 我想要的内容。
我认为最简单的方法是使用 root
class 而不是 label
(对于 Tab
component)。
演示:https://codesandbox.io/s/q3pmn9o7m4
(我添加了颜色以使更改更容易看到。)
<Tab
label="Item One"
classes={{
root: classes.tabRoot,
selected: classes.selected,
}}
/>
const styles = theme => ({
root: {
flexGrow: 1,
backgroundColor: theme.palette.background.paper,
},
tabRoot: {
fontWeight: "normal",
color: "#fff",
},
selected: {
fontWeight: "bold",
color: "#0ff",
}
});
另一种方式:https://codesandbox.io/s/8op0kwxpj
const styles = theme => ({
root: {
flexGrow: 1,
backgroundColor: theme.palette.background.paper,
},
tabRoot: {
fontWeight: "normal",
color: "#fff",
'&$selected': {
fontWeight: "bold",
color: "#0ff",
},
},
selected: {},
});
此处的代码沙箱:
https://codesandbox.io/s/ypx4qpjvpx
相关位:
const styles = theme => ({
root: {
flexGrow: 1,
backgroundColor: theme.palette.background.paper
},
label: {
fontWeight: "normal"
},
selected: {
fontWeight: "bold"
}
});
<Tabs value={value} onChange={this.handleChange}>
<Tab
label="Item One"
classes={{
label: classes.label,
selected: classes.selected
}}
/>
<Tab
label="Item Two"
classes={{
label: classes.label,
selected: classes.selected
}}
/>
<Tab
label="Item Three"
href="#basic-tabs"
classes={{
label: classes.label,
selected: classes.selected
}}
/>
</Tabs>
我想在这里做的是我需要覆盖默认字体粗细样式,但在选中时,我希望它是粗体。
问题是 - 它们具有相同级别的特异性,并且标签在选择后出现,因此它会覆盖它。
如何在不使用 !important 的情况下选择更多 specific/achieve 我想要的内容。
我认为最简单的方法是使用 root
class 而不是 label
(对于 Tab
component)。
演示:https://codesandbox.io/s/q3pmn9o7m4
(我添加了颜色以使更改更容易看到。)
<Tab
label="Item One"
classes={{
root: classes.tabRoot,
selected: classes.selected,
}}
/>
const styles = theme => ({
root: {
flexGrow: 1,
backgroundColor: theme.palette.background.paper,
},
tabRoot: {
fontWeight: "normal",
color: "#fff",
},
selected: {
fontWeight: "bold",
color: "#0ff",
}
});
另一种方式:https://codesandbox.io/s/8op0kwxpj
const styles = theme => ({
root: {
flexGrow: 1,
backgroundColor: theme.palette.background.paper,
},
tabRoot: {
fontWeight: "normal",
color: "#fff",
'&$selected': {
fontWeight: "bold",
color: "#0ff",
},
},
selected: {},
});