想要从材料-ui标签更改活动标签上的背景颜色:
http://www.material-ui.com/#/components/tabs
已经如何更改下划线:
inkBarStyle = {{background:'red'}}
但背景颜色已更改
非常感谢
答案 0 :(得分:2)
要自定义选项卡的背景颜色和inkBar的颜色,建议自定义Material-UI主题本身。这两种颜色有特定的设置。
const muiTheme = getMuiTheme({
tabs: {
backgroundColor: 'red'
},
inkBar: {
backgroundColor: 'yellow'
}
})
有关自定义主题的详细信息,请访问:http://www.material-ui.com/#/customization/themes
答案 1 :(得分:0)
您可以简单地通过样式的条件渲染来做到,您的样式应如下所示
const styles = theme => ({
default_tabStyle:{
color: 'black',
fontSize:11,
backgroundColor: 'blue',
},
active_tabStyle:{
fontSize:11,
color: 'white',
backgroundColor: 'red',
}
})
然后在组件中
class YourComponent extends Component {
state = {
value: 0,
}
handleChange = (event, value, index) => {
this.setState({ value:value });
}
render(){
const { classes } = this.props;
return (
<div>
<AppBar position="static" className={classes.appBarStyle}>
<Tabs value={this.state.value} indicatorColor="#E18F68"
onChange={this.handleChange}
fullWidth={true}
scrollButtons="auto"
>
<Tab label="Tab01"
className=
{this.state.value===0 ? classes.active_tab :classes.default_tabStyle} />
<Tab label="Tab02"
className=
{this.state.value===1 ?classes.active_tab :classes.default_tabStyle}/>
<Tab label="Tab02"
className=
{this.state.value===2 ?classes.active_tab :classes.default_tabStyle
}/>
</Tabs>
</AppBar>
</div>
)
}
}
默认情况下,您的标签页的索引为0,并且更改时标签的索引将应用active_tabStyle。
答案 2 :(得分:0)
总而言之,更新主题可能比更新选项卡的一个实例更好。这样,您就不必将样式添加到该特定组件的每次单独使用中。
通常,您会有一个主题文件,例如:
./ themes / default / index.ts
import { createMuiTheme } from '@material-ui/core/styles';
import { Breakpoint } from '@material-ui/core/styles/createBreakpoints';
const overrides = {
MuiTab: {
// general overrides for your material tab component here
root: {
backgroundColor: 'red',
'&$selected': {
backgroundColor: 'blue',
}
},
},
};
const theme = createMuiTheme( {
overrides,
breakpoints,
palette,
typography,
shape,
});
然后在您的应用程序中,您可以将其用作:
./ src / index.ts
import * as React from 'react';
import * as ReactDOM from 'react-dom';
import { MuiThemeProvider } from '@material-ui/core/styles';
import { App } from './components';
ReactDOM.render(
<MuiThemeProvider theme={themeSpec.theme}>
<App />
</MuiThemeProvider>,
document.getElementById('root') as HTMLElement
);
来源:https://material-ui.com/customization/components/#global-theme-override
可以在此处找到默认值:https://material-ui.com/customization/default-theme/
有关实体主题的更多信息:https://material-ui.com/customization/themes/#themes
注意:打字稿中的示例要更全面一些,但对于普通javascript来说也一样
答案 3 :(得分:0)
试试这个
const CustomTab = withStyles({
root: {
backgroundColor: 'orange',
},
selected: {
backgroundColor: 'purple',
},
})(Tab);
然后
<Tabs>
<CustomTab label='One' />
<CustomTab label='Two' />
<CustomTab label='Three' />
</Tabs>