首页 > 解决方案 > Material-ui 主题父组件但不是同类型子组件

问题描述

我正在尝试设置 Material UI 扩展面板的样式,以便我的主题在展开时仅应用于父扩展面板,而不是其中的任何嵌套面板。

例如:

在此处输入图像描述

这是我的主题:

const myTheme = createMuiTheme({
  overrides: {
    MuiExpansionPanelSummary: {
      root: {
        minHeight: "0px",
        minWidth: "0px",
        "&$expanded": {
          backgroundColor: "lightblue"
        }
      }
    }
  }
});

我似乎无法弄清楚如何让这种样式仅适用于父 ExpansionPanelSummary 组件,而不适用于存在于另一个 ExpansionPanel 内部的任何 ExpansionPanelSummary 组件。

这是一个沙盒示例: 编辑 MUI 如何:覆盖选项卡主题

标签: javascriptcssreactjsmaterial-ui

解决方案


以下是执行此操作的一种方法:

import { createMuiTheme } from "@material-ui/core";

const myTheme = createMuiTheme({
  overrides: {
    MuiExpansionPanelSummary: {
      root: {
        minHeight: "0px",
        minWidth: "0px",
        "&$expanded": {
          backgroundColor: "lightblue"
        },
        ".MuiExpansionPanelDetails-root &$expanded": {
          backgroundColor: "transparent"
        }
      }
    }
  }
});

export default myTheme;

编辑自定义 ExpansionPanelSummary 主题


推荐阅读