gpt4 book ai didi

javascript - MUI 按钮悬停背景颜色和文本颜色

转载 作者:行者123 更新时间:2023-12-04 00:52:59 26 4
gpt4 key购买 nike

我创建了一个 Appbar React.js 中的组件,其中包含 3 个按钮,但是当我将鼠标悬停在这些按钮上时,我想更改颜色。背景颜色为#3c52b2文本颜色为 #fff .当我将鼠标悬停在按钮上时,我想要背景颜色和文本颜色交换。
我已经尝试了下面的代码,但仍然无法正常工作。

Button: {
'&:hover': {
backgroundColor: '#ffffff',
boxShadow: 'none',
},
'&:active': {
boxShadow: 'none',
backgroundColor: '#3c52b2',
},
},

最佳答案

您可能不想更改按钮的 :active状态,但默认值和 :hover状态。下面设置按钮color#fffbackgroundColor#3c52b2并打开它们:hover .
我不确定您如何应用更新的样式(或您如何尝试覆盖默认样式),我在下面使用 makeStyles() 创建了这个片段但这个想法与 withStyles() HOC 相同.

const { 
AppBar,
Button,
makeStyles,
Toolbar,
Typography,
} = MaterialUI

const useStyles = makeStyles({
flexGrow: {
flex: '1',
},
button: {
backgroundColor: '#3c52b2',
color: '#fff',
'&:hover': {
backgroundColor: '#fff',
color: '#3c52b2',
},
}})

function AppBarWithButtons() {
const classes = useStyles()

return (
<AppBar>
<Toolbar>
<Typography>
YourApp
</Typography>
<div className={classes.flexGrow} />
<Button className={classes.button}>
Button 1
</Button>
<Button className={classes.button}>
Button 2
</Button>
</Toolbar>
</AppBar>
);
};

ReactDOM.render(
<React.StrictMode>
<AppBarWithButtons />
</React.StrictMode>,
document.getElementById("root")
)
<div id="root"></div>
<script src="https://unpkg.com/react/umd/react.production.min.js"></script>
<script src="https://unpkg.com/react-dom/umd/react-dom.production.min.js"></script>
<script src="https://unpkg.com/@material-ui/core@latest/umd/material-ui.production.min.js"></script>

您也可以只使用 create a new styled button component :
const StyledButton = withStyles({
root: {
backgroundColor: '#3c52b2',
color: '#fff',
'&:hover': {
backgroundColor: '#fff',
color: '#3c52b2',
},
}})(Button);

const { 
AppBar,
Button,
Toolbar,
Typography,
withStyles
} = MaterialUI

const StyledButton = withStyles({
root: {
backgroundColor: '#3c52b2',
color: '#fff',
'&:hover': {
backgroundColor: '#fff',
color: '#3c52b2',
},
}})(Button);

function AppBarWithButtons() {
return (
<AppBar>
<Toolbar>
<Typography>
YourApp
</Typography>
<div style={{flex: '1'}} />
<StyledButton>
Button 1
</StyledButton>
<StyledButton>
Button 2
</StyledButton>
</Toolbar>
</AppBar>
);
};

ReactDOM.render(
<React.StrictMode>
<AppBarWithButtons />
</React.StrictMode>,
document.getElementById("root")
)
<div id="root"></div>
<script src="https://unpkg.com/react/umd/react.production.min.js"></script>
<script src="https://unpkg.com/react-dom/umd/react-dom.production.min.js"></script>
<script src="https://unpkg.com/@material-ui/core@latest/umd/material-ui.production.min.js"></script>

关于javascript - MUI 按钮悬停背景颜色和文本颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64983425/

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