当前位置: 首页 > 面试题库 >

使用material-ui jss样式将鼠标悬停在父项上时如何更改子项的样式

董康平
2023-03-14
问题内容

我在反应中使用Material-ui。假设我有这些样式的组件

const useStyles = makeStyles(theme => ({
  outerDiv: {
    backgroundColor: theme.palette.grey[200],
    padding: theme.spacing(4),
    '&:hover': {
      cursor: 'pointer',
      backgroundColor: theme.palette.grey[100]
   }
  },
  addIcon: (props: { dragActive: boolean }) => ({
    height: 50,
    width: 50,
    color: theme.palette.grey[400],
    marginBottom: theme.spacing(2)
  })
}));

function App() {
  const classes = useStyles();
  return (
    <Grid container>
      <Grid item className={classes.outerDiv}>
        <AddIcon className={classes.addIcon} />
      </Grid>
    </Grid>
  );
}

当我使用上述样式将鼠标悬停在externalDiv上时,我想更改addIcon的样式。

这是我的示例:https :
//codesandbox.io/s/trusting-
mcnulty-b1gcd?fontsize=14&hidenavigation=1&theme=dark


问题答案:

以下是正确语法的示例("& $addIcon"嵌套在中&:hover)。

import * as React from "react";
import { render } from "react-dom";
import { Grid, makeStyles } from "@material-ui/core";
import AddIcon from "@material-ui/icons/Add";

const useStyles = makeStyles(theme => ({
  outerDiv: {
    backgroundColor: theme.palette.grey[200],
    padding: theme.spacing(4),
    '&:hover': {
      cursor: 'pointer',
      backgroundColor: theme.palette.grey[100],
      "& $addIcon": {
        color: "purple"
      }
   }
  },
  addIcon: (props: { dragActive: boolean }) => ({
    height: 50,
    width: 50,
    color: theme.palette.grey[400],
    marginBottom: theme.spacing(2)
  })
}));

function App() {
  const classes = useStyles();
  return (
    <Grid container>
      <Grid item className={classes.outerDiv}>
        <AddIcon className={classes.addIcon} />
      </Grid>
    </Grid>
  );
}

const rootElement = document.getElementById("root");
render(<App />, rootElement);



 类似资料:
  • 问题内容: 当父元素悬停时如何更改子元素的样式。如果可能的话,我希望使用CSS解决方案。有没有可能通过:hover CSS选择器解决方案。实际上,当面板上悬停时,我需要更改面板内选项栏的颜色。 希望支持所有主流浏览器。 问题答案: 是的,您绝对可以做到这一点。只需使用类似 根据此页面,所有主流浏览器都支持该页面。

  • 问题内容: 处理样式化组件中悬停的最佳方法是什么?我有一个包装元素,将鼠标悬停时会显示一个按钮。 我可以在组件上实现某些状态并在悬停时切换属性,但想知道是否有更好的方法可以使用styled-cmponents来做到这一点。 像下面这样的东西不起作用,但是很理想: 问题答案: 从样式组件v2开始,您可以插值其他样式组件以引用其自动生成的类名。在您的情况下,您可能需要执行以下操作: 有关更多信息,请参

  • 问题内容: 我想申请到它是否有元素。 到目前为止,我已经将样式应用于元素(如果存在)。但我想的,如果有,仅使用。 以下是 该代码 问题答案: CSS3不可能。有一个建议的CSS4选择器,可以做到这一点,它看起来像这样(选择元素): 作为替代方案,使用jQuery,您可以利用的单行代码是这样的: 然后,您可以继续在CSS中设置样式。

  • 问题内容: 使用以下html,当我将鼠标悬停在孩子身上时,我的父母得到绿色背景。我该如何阻止这种情况的发生?如果我将鼠标悬停在子元素之外,我确实希望使用绿色背景。 CSS3很好。 问题答案: 因此,这确实很丑陋,但是(确实)有效。我基本上是在创建父母的副本作为孩子的兄弟姐妹。默认情况下,parent- overwrite是隐藏的,然后显示在child的悬停上。除非您使用+选择器而不是〜选择器,否则

  • 在按钮悬停我想做的改变:之前的内容太,我找不到一个答案在官方留档我想知道这是可能的。 这里是样式组件:

  • 我被要求为悬停事件中的下拉菜单设置背景颜色。我尝试将class=“page-limit-option”类应用于option元素,但没有成功。我需要创建一个新的样式组件来代替选项吗? 在css文件中: 此处的stackblitz:https://stackblitz.com/edit/angular-style-a-select?file=app/app.component.ts