当前位置: 首页 > 知识库问答 >
问题:

React中选择组件如何覆盖物料UI根CSS类

南门嘉
2023-03-14

我正在使用材料UI选择组件在我的反应项目。

我正在尝试重写CSS类.muipaper-root和或.muimenu-list

我的选择组件:

<Select
  value={selectValue}
  disableUnderline
  onChange={handleChange}
  css={styles.select}
>
  {cities?.map((city) => {

    return (
      <MenuItem
        key={city.value}
        value={city.value}
        css={styles.selectItem}
      >
        {city.label}
      </MenuItem>
    );
  })}
</Select>

下面不行吗?

export default ({ theme }: StylesProps) => ({
 select: css`
   .MuiPaper-root {
      background-color: red;
    }
 `,
});

共有1个答案

琴俊人
2023-03-14

为了覆盖材质UI类,您可以用类覆盖样式。在这种方法中,您需要创建包含修改过的类的usestyles对象。

然后,可以通过更改属性来为目标组件(例如MenuItem)分配:

import { makeStyles } from '@material-ui/core/styles';
//other import statements//

    const useStyles = makeStyles({
      list: {
        background: 'linear-gradient(45deg, #FE6B8B 30%, #FF8E53 90%)',
        borderRadius: 3,
        border: 0,
        color: 'white',
        height: 48,
        padding: '0 30px',
        boxShadow: '0 3px 5px 2px rgba(255, 105, 135, .3)',
      },
      root:{
      //css properties for the root//
      },
    });
    export default function ClassesNesting() {
          const classes = useStyles();
          return (
        <Select
          value={selectValue}
          disableUnderline
          onChange={handleChange}
          classes={{
                    root: classes.root,
                    }}
        >
          {cities?.map((city) => {
    
            return (
              <MenuItem
                key={city.value}
                value={city.value}
                classes={{
                    list: classes.list,
                    }}
                    >
              >
                {city.label}
              </MenuItem>
            );
          })}
        </Select>
          )

其他组件和类也是如此。

 类似资料:
  • 我正在尝试覆盖一个外部组件的默认CSS,它不是在Material-UI或我的项目中开发的。在styled-components中,我可以使用根类并用自定义CSS替换它们。我如何用Material-UI-React做同样的操作? 假设我必须用新的颜色属性替换这两个类,我如何在材质样式中做到这一点呢? 这是我试过的,但没有运气! 我使用withStyles稍后将它们注入到组件中。

  • 问题内容: 在对话框中,如果选中了某个组合,则需要显示一组控件,否则显示另一组控件。即我需要2层,并且当组合被选中/未选中时,我需要在它们之间切换。我怎样才能做到这一点? 问题答案: CardLayout 为此,如下所示。

  • 我想通过剧作家选择一个选项,但我不能选择一个选项。什么是错的? 梅 测试

  • 问题内容: 我正在开发页面,现在以我的CSS样式我有以下代码行 为我的页面。现在,我的某些页面不需要此行 我可能会在页面的内部CSS中覆盖它,这将导致原始行为被忽略? 问题答案: 使用不推荐,但在这种情况下,我想你应该- 在您的内部CSS中编写此代码-

  • 问题内容: 我想创建一个具有任意大小的div,然后在该div上显示一些内容。完全按照CSS中下面的div定位和调整叠加层大小的最佳方法是什么? 问题答案: 您可以使用将叠加层放置在div内部,然后在各个方向上将其拉伸,如下所示: CSS 已更新* 您只需要确保您的父div为其添加了属性,并为其设置了更低的属性。 为下面的评论者制作了一个可以在所有浏览器(包括IE7 +)上运行的演示。 从CSS中移

  • 基本的Android网页文本选择菜单如下图所示。它有复制、共享、全选、网络搜索等选项。 我想越过这个菜单,并希望他们作为我自己的菜单列表,如“标记颜色”,“标记为imp”等。我查看了关于堆栈溢出的上下文菜单的大部分可用问题。大多数问题与上下文菜单有关,但没有给出预期的结果。我想要像下面图像一样的菜单 当我执行选择时,android monitor会显示一些视图创建表单viewRoot 我扩展了an