展开时覆盖 Material UI 扩展面板

问题描述 投票:0回答:3

展开时是否可以覆盖扩展面板的摘要高度?更具体地说,我想删除 min-height 属性,并使摘要面板的高度为 40px,而不是 64px(默认值)。我尝试在根组件扩展时对其最小高度进行更改。 编辑:这里也是沙箱: https://codesandbox.io/embed/material-demo-forked-3ujf6?fontsize=14&hidenavigation=1&theme=dark

我使用的代码与以下相同:

const styles = (theme) => ({
  root: {
    width: "100%"
  },
  heading: {
    fontSize: theme.typography.pxToRem(15),
    fontWeight: theme.typography.fontWeightRegular
  },
  expansionPanel: {
    minHeight: "40px",
    "&$expanded": {
      minHeight: "40px"
    }
  }
});

function SimpleExpansionPanel(props) {
  const { classes } = props;
  return (
    <div className={classes.root}>
      <ExpansionPanel>
        <ExpansionPanelSummary
          classes={{ root: classes.expansionPanel }}
          expandIcon={<ExpandMoreIcon />}
        >
          <Typography className={classes.heading}>Expansion Panel 1</Typography>
        </ExpansionPanelSummary>
        <ExpansionPanelDetails>
          <Typography>
            Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse
            malesuada lacus ex, sit amet blandit leo lobortis eget.
          </Typography>
        </ExpansionPanelDetails>
      </ExpansionPanel>
      <ExpansionPanel>
        <ExpansionPanelSummary expandIcon={<ExpandMoreIcon />}>
          <Typography className={classes.heading}>Expansion Panel 2</Typography>
        </ExpansionPanelSummary>
        <ExpansionPanelDetails>
          <Typography>
            Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse
            malesuada lacus ex, sit amet blandit leo lobortis eget.
          </Typography>
        </ExpansionPanelDetails>
      </ExpansionPanel>
      <ExpansionPanel disabled>
        <ExpansionPanelSummary expandIcon={<ExpandMoreIcon />}>
          <Typography className={classes.heading}>
            Disabled Expansion Panel
          </Typography>
        </ExpansionPanelSummary>
      </ExpansionPanel>
    </div>
  );
}

我想要覆盖/删除的属性:

enter image description here

我想要覆盖尺寸的示例图片:

enter image description here

我需要摘要面板的高度为 40px。

javascript reactjs typescript material-ui frontend
3个回答
1
投票

Material-UI 本身已经有一个名为

expanded
链接此处)的 css api,因此您可以使用它来覆盖这样的样式

<ExpansionPanelSummary
    classes={{ expanded: classes.expansionPanel }}
    ...
>

而且你不需要

&$
那部分。


0
投票

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

const useStyles =  makeStyles((theme) => ({
  overrideExpendedHeight: {
    minHeight: '40px',
  }
}));

function SimpleExpansionPanel(props) {
  const { classes } = props;
  const muiClasses = useStyles();
  
  return (
    <div className={classes.root}>
      <ExpansionPanel classes={{ expanded: muiClasses.overrideExpendedHeight }}>
        ...
      </ExpansionPanel>
    </div>
  );
}

尝试这种方式以获得 MUI 的最佳实践。


0
投票
just pass this prop it will solve the issue:

 <Accordion
        expanded={isAccordionOpen}
        disableGutters> 
 <AccordionSummary
         sx={{
            "& .MuiAccordionSummary-content": {
                  margin: 0,
                },
             }}
        >
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.