小能豆

如何使 Material UI 中的组件居中并使其响应?

ui

我不太了解 Material UI 网格系统。如果我想使用表单组件进行登录,那么让它在所有设备(移动设备和桌面设备)上居中显示在屏幕上的最简单方法是什么?


阅读 60

收藏
2024-06-03

共1个答案

小能豆

这是我在登录页面中使用 Material UI 的代码

*Material UI v5*

<Grid
  container
  spacing={0}
  direction="column"
  alignItems="center"
  justifyContent="center"
  sx={{ minHeight: '100vh' }}
>
  <Grid item xs={3}>
    <LoginForm />
  </Grid>
</Grid>

Material UI v4 及更低版本

<Grid
  container
  spacing={0}
  direction="column"
  alignItems="center"
  justify="center"
  style={{ minHeight: '100vh' }}
>
  <Grid item xs={3}>
    <LoginForm />
  </Grid>
</Grid>

这会使该登录表单位于屏幕的中央。

但是,IE 仍然不支持 Material-UI Grid,您会在 IE 中看到一些放错位置的内容。

正如@max所指出的,另一种选择是,

<Grid container justifyContent="center">
  <Your centered component/>
</Grid>

请注意,Material UI v4 及以下版本应改用 justify=”center”。

但是,使用没有 Grid 项目的 Grid 容器是未记录的行为。

除此之外,另一种新的、更好的方法是使用组件Box

<Box
  display="flex"
  justifyContent="center"
  alignItems="center"
  minHeight="100vh"
>
  <YourComponent/>
</Box>

这最初是由 Killian Huyghe 作为另一个答案发布的。

2024-06-03