如何在Material UI网格项目中将项目水平居中?

Dun*_*nes 4 css reactjs material-ui

如何在Material UI Grid项内居中放置元素?这是我的React应用程序的片段:

<Grid container>
  <Grid item xs={4}>
    // Unrelated stuff here
  </Grid>
  <Grid item xs={4}>
    // How do I centre these items?
    <IconButton className={classes.menuButton} color="inherit">
      <EditIcon/>
    </IconButton>
    <IconButton className={classes.menuButton} color="inherit">
      <CheckBoxIcon/>
    </IconButton>
  </Grid>
  <Grid item xs={4}>
    // Unrelated stuff here
  </Grid>
</Grid>
Run Code Online (Sandbox Code Playgroud)

我试过申请alignContentjustifyalignItems(父<Grid item>),但没有成功。

我以为这很简单,但是我没找到关于网格项目内部居中项目的任何信息。

小智 25

 <Grid container  className = {classes.root} align = "center" justify = "center" alignItems = "center"  >
            <CssBaseline/>
            <Grid item xs = {false} sm = {4} md = {6}>

            </Grid>
            <Grid item xs = {12} sm = {4} md = {6}>

            </Grid>
        </Grid>`enter code here`
Run Code Online (Sandbox Code Playgroud)

  • 谢谢,`align =“center”`属性对我有用。为什么这不在文档中?https://material-ui.com/api/grid/ (8认同)
  • `align="center"` 完成了这项工作。这些文档对于 Material-ui 来说可能非常糟糕...... (2认同)

Jua*_*rce 21

这是正确的方法:

<Grid container item xs={4} justify="center">
Run Code Online (Sandbox Code Playgroud)

如果容器属性设置为 true,则组件将具有 flex 容器行为。

网格 API


Nea*_*arl 6

MUI v5中,根据迁移指南, 的justifypropGrid被重命名为justifyContent与 CSS 属性名称对齐:

<Grid container justifyContent="center" alignItems="center">
Run Code Online (Sandbox Code Playgroud)

  • 补充一点:当将内容集中在 &lt;Grid item&gt; 内部时,我发现令人困惑的是我们还必须应用 `container` 属性来赋予 `item` 弹性容器行为,以便使 `justifyContent`工作。IE。`&lt;网格容器&gt;&lt;网格容器项目 justifyContent="center"&gt;&lt;MyItem /&gt;&lt;/Grid&gt;&lt;/Grid&gt;` (4认同)

Dun*_*nes 5

两秒钟后...我通过一些简单的CSS解决了这个问题:

<Grid item xs={4} style={{textAlign: "center"}}>
</Grid>
Run Code Online (Sandbox Code Playgroud)

如果还有另一种方法更“正确”,请随时发布另一个答案。

  • 这是完全正确的,因为元素是内联(或内联块)然后居中是由文本对齐完成的 (2认同)