React.js Material UI - 带弹性显示的 CardActionArea - 子元素不使用全宽度

cur*_*dev 2 javascript reactjs material-ui

开门见山 - 我尝试将display样式参数从blockto替换flexflexDirection: 'column'forCardActionArea组件。这样做的原因是为了确保连续的CardContent每一行都有相同的高度——我做到了。Card然而......CardHeader并在更改后CardContent未能实现。下面的插图应该可以澄清我的意思。width: '100%'display

在此输入图像描述 以下是相关代码

使成为

<Card className={classes.card}>
  <CardActionArea
    className={classes.cardActionArea}
    onClick={this.loadGroup}
  >
    <CardHeader
      avatar={
        <FolderIcon />
      }
      classes={{
        root: classes.header,
        title: classes.headerTitle,
        subheader: classes.headerSubheader
      }}
      title={this.state.group.name}
      subheader={this.renderModuleCount()}
    />
    <CardContent className={classes.content}>
      {this.renderContent()}
    </CardContent>
  </CardActionArea>
  <CardActions className={classes.actions}>
    <IconButton onClick={this.showDialog}>
      <DeleteIcon />
    </IconButton>
  </CardActions>
</Card>
Run Code Online (Sandbox Code Playgroud)

风格

card: {
  width: '30%',
  margin: theme.spacing(1),
  display: 'flex',
  flexDirection: 'column',
},
cardActionArea: {
  flexGrow: 1,
  display: 'flex',
  flexDirection: 'column'
},
header: {
  backgroundColor: theme.palette.secondary.main,
  color: theme.palette.secondary.contrastText,
  width: '100%',
},
headerTitle: {
  color: theme.palette.secondary.contrastText,
},
headerSubheader: {
  color: theme.palette.secondary.contrastText,
},
content: {
  flexGrow: 1,
},
Run Code Online (Sandbox Code Playgroud)

我正在寻找如何解决这个问题。我找不到任何padding或、 MUImargin组件。ButtonBaseCardActionArea

cur*_*dev 6

最后我找到了解决方案。样式类cardActionArea需要使用以下内容:

cardActionArea: {
  flexGrow: 1,
  flexDirection: 'column',
  alignItems: 'stretch',
},
Run Code Online (Sandbox Code Playgroud)

结果: 在此输入图像描述