【问题标题】:Having trouble creating onHover on Grid item component MaterialUI在 Hover on Grid 项目组件 Material UI 上创建时遇到问题
【发布时间】:2021-02-19 14:11:35
【问题描述】:

我正在创建一个网格布局,其中包含嵌套的网格组件。但是,出于某种我不明白的原因,在 Grid 项目组件中使用内联样式不起作用。请帮忙,我在 ReactJS 中使用 MaterialUI 是个新手。 Grid 封装在 Hide 组件中,该组件仅在移动设备中显示。

我想要实现的是 Grid 项目改变颜色 悬停

这是我所做的:

<Hidden mdUp='hide'>
          <Grid
            container
            xs={12}
            style={{
              fontFamily: 'Old Newspaper',
              background: '#f49275',
              '&:hover': { background: 'black' },
              marginLeft: '4px',
              marginRight: '4px',
            }}
          >
            <Grid
              item
              xs={4}
              style={{
                justifyContent: 'center',
                display: 'flex',
              }}
            >
              <a href='#'>
                &diams; Github &diams;
              </a>
            </Grid>
            <Grid
              item
              xs={4}
              style={{ justifyContent: 'center', display: 'flex' }}
            >
              <a
                href='#'
                target='_blank'
              >
                &diams; LinkedIn &diams;
              </a>
            </Grid>
            <Grid
              item
              xs={4}
              style={{ justifyContent: 'center', display: 'flex' }}
            >
              <a
                href='#'
                target='_blank'
              >
                &diams; Codewars &diams;
              </a>
            </Grid>
          </Grid>
        </Hidden>

【问题讨论】:

    标签: css reactjs material-ui hover


    【解决方案1】:

    要在网格项目上获得悬停样式,您必须在网格项目上添加悬停样式。而且您不能以内联 CSS 方式在元素上添加悬停样式。为网格项指定一个类名,然后在这些项上添加悬停样式。

    import React from "react";
    import { makeStyles } from "@material-ui/core/styles";
    import Grid from "@material-ui/core/Grid";
    import { Hidden } from "@material-ui/core";
    
    const useStyles = makeStyles((theme) => ({
      item:{
        color:'#fff',
        justifyContent: "center",
        display: "flex",
        '&:hover':{
          '&>a':{
            color:'green'
          }
        }
      }
    }));
    
    export default function SpacingGrid() {
      const classes = useStyles();
      
      return (
        <Hidden mdUp="hide">
          <Grid
            container
            className={classes.container}
            xs={12}
            style={{
              fontFamily: "Old Newspaper",
              background: "#f49275",
              marginLeft: "4px",
              marginRight: "4px"
            }}
          >
            <Grid
              item
              xs={4}
              className={classes.item}
            >
              <a href="#">&diams; Github &diams;</a>
            </Grid>
            <Grid item xs={4} className={classes.item}>
              <a href="#" target="_blank">
                &diams; LinkedIn &diams;
              </a>
            </Grid>
            <Grid item xs={4} className={classes.item}>
              <a href="#" target="_blank">
                &diams; Codewars &diams;
              </a>
            </Grid>
          </Grid>
        </Hidden>
      );
    }
    
    

    codesandbox 链接:- https://codesandbox.io/s/o8b52

    您能否详细说明您对在网格项目中使用内联样式的疑问。

    【讨论】:

      猜你喜欢
      • 2021-05-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-29
      • 2014-12-18
      • 1970-01-01
      • 2014-06-12
      • 1970-01-01
      相关资源
      最近更新 更多