当前位置: 首页 > 知识库问答 >
问题:

如何在材料UI中居中?

葛承嗣
2023-03-14

我有一个登录页面,有两个文本字段:用户名、密码和登录按钮,用户名字段在最上面,密码字段在下面,登录按钮在底部。我希望它们始终位于页面的中心,无论是垂直还是水平。我试过这个:

<Grid
    className={classes.container}
    container
    spacing={16}
    direction="column"
    justify="center"
    alignItems="center"
>
    <Grid item xs={12}>
        <TextField />
    </Grid>
    <Grid item xs={12}>
        <TextField />
    </Grid>
    <Grid item xs={12}>
        <Button />
    </Grid>
</Grid>

它只是水平居中。我怎样才能使它水平和垂直居中?

共有1个答案

谭锐藻
2023-03-14

您几乎已经得到了答案,您的解决方案的问题是您没有提供页面的高度,因此正确的答案是:

const styles = theme => ({
  content: {
    flexGrow: 1,
    backgroundColor: theme.palette.background.default,
    padding: theme.spacing.unit * 3
  },
  container: {
    minHeight: "100vh"
  }
});

class LoginPage extends Component {
  render() {
    const { classes } = this.props;

    return (
      <div className={classes.content}>
        <Grid
          container
          spacing={16}
          direction="column"
          alignItems="center"
          justify="center"
          className={classes.container}
        >
          <Grid item xs={12}>
            text field
          </Grid>
          <Grid item xs={12}>
            text field
          </Grid>
          <Grid item xs={12}>
            <Button variant="raised" color="primary">
              Login
            </Button>
          </Grid>
        </Grid>
      </div>
    );
  }
}

请发现minHeight正在为网格容器提供100vh。这里有一个工作示例:https://codesandbox.io/s/zl90ywy4r3

希望这对你有帮助。

 类似资料:
  • 我不知道如何在材质UI中居中放置按钮。这是我的代码: 我怎样才能使我的按钮居中?

  • 我试图得到分页从材料UI,但我想中心的箭头和页数的按钮。 我试图通过创建

  • 下面给出的是我使用材料ui编码的代码。我对那个地区还是新手。我需要把我的按钮放在中间。但它到了拐角处。我的代码有问题吗?

  • 问题内容: 我在玩Material- ui。我使用路线实现了LeftNav,但找不到找到IconMenu或Menu来处理链接或路线的方法。任何人都可以为我指出一个好的资源/教程吗?该文档不足,并且两个组件似乎都不像LeftNav那样支持’menuItems’作为属性。 问题答案: 2016年12月编辑: 该道具已 弃用 ,您会收到警告: 因此,只需删除道具: 这是示例存储库,以及此处的实时演示。

  • 我正在使用Material UI Slider,我想通过函数获取值。 我的代码如下: 这不起作用,并显示此错误。 (JSX属性)onChange?:((事件: React.更改事件 有人知道如何得到它吗?

  • 问题内容: 我知道要在Composite上进行绘制,您可以添加绘制侦听器,但这会导致在子级下进行绘制。如果我想画在孩子的头上怎么办? 以下内容画了一条线,但在其上画了subc。 问题答案: 不幸的是,这不是一个已实现的功能,如Bug#114749所示。 您必须编写自己的自定义解决方案(例如,计算每个受影响的复合材料的绘制区域,然后在每个组合上绘制)。 它是一个相当老的错误,但是如果您认为这是“必须