欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

材料UI按鈕懸停背景顏色和文本顏色

黃文隆1年前7瀏覽0評論

我在React.js中創建了一個帶有3個按鈕的Appbar組件,但是當我懸停在這些按鈕上時,我想改變顏色。背景顏色為#3c52b2,文本顏色為#fff。當我懸停在按鈕上時,我希望背景顏色和文本顏色交換。

我已經嘗試了下面的代碼,但仍然不工作。

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

您可能不想改變按鈕的:active狀態,而是改變默認狀態和:hover狀態。下面將按鈕顏色設置為# fff,背景顏色設置為#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>

您可以在MUI v5中使用sx prop實現這一點:

<Button
  variant="text"
  sx={{
    ':hover': {
      bgcolor: 'primary.main', // theme.palette.primary.main
      color: 'white',
    },
  }}
>
  Text
</Button>

或者styled(),如果您想創建一個可重用的組件:

const StyledButton = styled(Button)(({ theme, color = 'primary' }) => ({
  ':hover': {
    color: theme.palette[color].main,
    backgroundColor: 'white',
  },
}));

<StyledButton variant="contained" color="primary">
  Contained
</StyledButton>
<StyledButton variant="contained" color="secondary">
  Contained
</StyledButton>

現場演示Codesandbox Demo

如果你想讓默認的mui按鈕在懸停時變暗,試試這個mui主題:

import { darken } from '@material-ui/core/styles';

containedPrimary: {
    backgroundColor: someColor,
    '&:hover': {
        backgroundColor: darken(someColor, 0.3),
    },
},

我在應用程序中使用的最簡單的方法。

const useStyle = {
  Button: {
    "&:hover": {
      backgroundColor: "#ffffff !important",
      boxShadow: "none !important",
    },
    "&:active": {
      boxShadow: "none !important",
      backgroundColor: "#3c52b2 !important",
    },
  },
};

return <Button sx={useStyle.button}>Click here</Button>;