css - Material UI - 在 FlexBox 中垂直居中一个元素
问题描述
在我的反应应用程序中,我创建了一个最小宽度和高度的卡片,它只包含一个标题。我想添加一个 flexbox,它将占用整个左侧空间,justify-content="center"
因此align-items="center"
当我添加一个圆形进度元素时,它将位于卡片的中间。不幸的是,无论我做什么,flexbox 的高度都等于加载微调器的高度,它不会占用整个空间。如何解决?我的组件:
function AccountSettings({isLoading, id, username, isDisable}) {
const classes = useStyles();
return (
<Card
className={classes.accountSettings}
>
<CardHeader
title="Something"
/>
<Divider/>
<Box
display="flex"
alignItems="center"
justifyContent="center"
height={"100%"}
width={"100%"}
>
<CircularProgress/>
</Box>
</Card>
);
}
我的风格:
import {makeStyles} from "@material-ui/styles";
export default makeStyles(theme => ({
root: {
maxWidth: "1000px"
},
pageTitle: {
padding: "5px"
},
accountSettings: {
minWidth: "312px",
minHeight: "273px",
}
}));
这是我的主要观点:
<div className={classes.root}>
<AccountSettings/>
</div>
解决方案
将以下内容添加到样式中:
accountSettings: {
display: 'flex',
flexDirection: 'column'
},
box: {
flexGrow: 1
}
并将类添加到Box
元素中:
<Box
className={classes.box}
推荐阅读
- html - 如何使用 flex 方向将多个 div 定位在 div 内的不同位置?
- r - 如何解析要用作标签的表达式(ggplot2)
- python - 在python中转换为二进制补码
- forms - 我的文本表单小部件没有滚动,再次出现同样的问题。我尝试添加 SingleChildScrollView 但它不起作用
- java - Java else if 和 else 在 while 循环下使用 Scanner 时不起作用
- ionic-framework - 三个 js textureloader 显示 CORS 错误以从 Ionic App 的 iframe 中从 S3 Bucket 加载数据
- java - 我需要将正确的字符串放在“new FileReader(“stringpath”)”中的括号中
- c++ - 从零开始的 Linux 10.2.0 gcc 失败
- php - MySQL 填充另一个表 - 使用过程或其他方式
- c# - 使用 C# 和 winforms 从列表中填充文本框