首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何定制材料-ui手风琴组件的行为/风格?

如何定制材料-ui手风琴组件的行为/风格?
EN

Stack Overflow用户
提问于 2021-06-18 04:35:08
回答 2查看 3.9K关注 0票数 3

我有一个div容器(灰色),它有一个手风琴组件,只有一个AccordionSummary组件。另一个(蓝色)在那个下面。一切看起来都很好(图1)。当我展开手风琴时:

  • 它显示了AccordionDetails组件好的
  • 自动调整灰色容器div的大小好的
  • 但还不够,所以蓝色div超出了容器坏的(pic #2)

假设这是一个标准的手风琴组件行为。但你们中有谁遇到过这样的问题吗?你们是如何处理的?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-06-21 04:10:20

使用挠曲盒和一般填充的根元素和边缘顶部的蓝色元素。

我认为您的问题是将绝对高度设置为像300 an这样的灰色元素,这使得问题使用了高度:“自动”和一般填充。

代码语言:javascript
复制
import React from "react";
import { makeStyles } from "@material-ui/core/styles";
import Accordion from "@material-ui/core/Accordion";
import AccordionSummary from "@material-ui/core/AccordionSummary";
import AccordionDetails from "@material-ui/core/AccordionDetails";
import Typography from "@material-ui/core/Typography";
import ExpandMoreIcon from "@material-ui/icons/ExpandMore";

const useStyles = makeStyles((theme) => ({
  root: {
    display: "flex",
    flexDirection: "column",
    alignItems: "center",
    width: "100%",
    backgroundColor: "#eee",
    padding: 20,
  },
  heading: {
    fontSize: theme.typography.pxToRem(15),
    fontWeight: theme.typography.fontWeightRegular
  },
  rectangle: {
    width: "80%",
    height: 200,
    backgroundColor: "blue",
    marginTop:20
  }
}));

export default function App() {
  const classes = useStyles();

  return (
    <div className={classes.root}>
      <Accordion>
        <AccordionSummary
          expandIcon={<ExpandMoreIcon />}
          aria-controls="panel1a-content"
          id="panel1a-header"
        >
          <Typography className={classes.heading}>Accordion 1</Typography>
        </AccordionSummary>
        <AccordionDetails>
          <Typography>
            Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse
            malesuada lacus ex, sit amet blandit leo lobortis eget.
          </Typography>
        </AccordionDetails>
      </Accordion>
      <div className={classes.rectangle} />
    </div>
  );
}
票数 0
EN

Stack Overflow用户

发布于 2022-10-18 02:40:29

代码语言:javascript
复制
import Accordion from '@mui/material/Accordion';
import AccordionDetails from '@mui/material/AccordionDetails';
import AccordionSummary from '@mui/material/AccordionSummary';
import { styled } from '@mui/material/styles';

const CustomAccordion = styled(Accordion)(({ theme }) => {
  return {
    boxShadow: 'none', // this styles directly apply to accordion
    border: `1px solid gray`,
    '.MuiAccordionDetails-root': {},
    '.MuiAccordionSummary-root': {}, // this apply to Summary
  };
});

现在你可以用手风琴代替手风琴了

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68029372

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档