css - 材质 UI 中的相同高度卡片
问题描述
尝试使用 3 张水平卡片但高度相同并且反应灵敏。
喜欢
卡 A | 卡 B | 卡 C
解决方案
您可以使用 Grid 组件来实现此目的:
<Grid container alignItems="stretch">
<Grid item component={Card} xs>
<CardContent>
// Card A content
</CardContent>
<CardActions>
// Card A actions
</CardActions>
</Grid>
<Grid item component={Card} xs>
<CardContent>
// Card B content
</CardContent>
<CardActions>
// Card B actions
</CardActions>
</Grid>
<Grid item component={Card} xs>
<CardContent>
// Card B content
</CardContent>
<CardActions>
// Card B actions
</CardActions>
</Grid>
</Grid>
alignItems="stretch"
(您实际上不需要指定,因为拉伸是默认值)当 flex 方向为row
(这也是默认方向)时,将具有拉伸每个项目的高度的效果。您可以查看此答案以获取更多详细信息:https ://stackoverflow.com/a/46956430/253693
each 上的xs
属性Grid item
利用auto-layout,指示每张卡片平均共享可用宽度。
还有一些你可以解决的清理项目,即使用withStyles HOC将一个类应用于每个固定间距的 Card 组件,并确保 CardActions 保持在卡片的底部,无论 CardContent 的高度如何:
const styles = {
card: {
// Provide some spacing between cards
margin: 16,
// Use flex layout with column direction for components in the card
// (CardContent and CardActions)
display: "flex",
flexDirection: "column",
// Justify the content so that CardContent will always be at the top of the card,
// and CardActions will be at the bottom
justifyContent: "space-between"
}
};
然后,您可以将这些样式应用于每张卡片,如下所示:
<Grid item component={Card} xs className={classes.card}>
这是一个将所有内容组合在一起的工作示例:https ://codesandbox.io/embed/r9y95vr5n
推荐阅读
- python - Python 资源文件管理
- sql - 在 MS-Access 查询上使用具有两个联接的别名
- ruby-on-rails - 从 CSV 创建两个模型
- bash - 如何匹配文件中两个字符串之间的字符串并使用sed操作匹配的字符串?
- android - 显示后编辑 CustomViewGroup (RelativeLayout) (Android)
- python-3.x - 井字游戏无法识别获胜者
- java - 使用 scrollFlags 时自定义工具栏不隐藏
- java - 如何验证字符串集合和每个元素作为 URL?
- angular - “使用 gridOptions 更新 ag-grid”
- dart - 我应该为颤振形式的每个输入字段创建一个单独的控制器吗?