如何在 Ionic 5 上垂直和水平居中网格?

How to center grid vertically and horizontally on Ionic 5?

我不知道如何将4个图标居中放置在布局的中心,就像2个图标在上和2个在下,我用ubuntu不能画例子,抱歉。我必须处理 CSS 的问题并且不知道。谢谢

我现在的CSS:

.vertical-center {
    .fixed-content,
    .scroll-content {
        display: flex;
        align-items: center;

        ion-grid {
            max-width: 300px; 
            width:100%; 
            margin: auto; 
            text-align: center;
        }
    }
}

我的HTML代码:

<ion-content class="vertical-center">

  <ion-grid>
    <ion-row>
      <ion-col>
        <img src="../../assets/fbicon.png" style="width:60px;" />
      </ion-col>
      <ion-col>
        <img src="../../assets/igicon.png" style="width:60px;" />
      </ion-col>
    </ion-row>
    <ion-row>
      <ion-col>
        <img src="../../assets/twittericon.png" style="width:60px" />
      </ion-col>
      <ion-col>
        <img src="../../assets/mylogo.png" style="width:60px;" />
      </ion-col>
    </ion-row>
  </ion-grid>
</ion-content>

这就是我的目标:

我通常将 ion-gridion-row 样式居中:

display: flex;
align-items: center;
justify-content: center;

终于解决了:

我认为这不是最好的结果,但我可以在屏幕中心看到更好的效果,所以目前是我唯一的选择。

//.SCSS

.square {
    width: 40%;
    margin: 1%;
}

.wrapper {
    display: grid;
    height: 100%;
    width: 100%;
    align-items: center;
    justify-items: center;
  }

//HTML

  <div class="wrapper">
    <ion-grid class="square">
      <ion-row>
        <ion-col>
          <img class="animate__animated animate__fadeInDown animate__slow" src="../../assets/icon1.png" style="width:60px;"/>
        </ion-col>
        <ion-col>
          <img class="animate__animated animate__fadeInRight animate__slow" src="../../assets/icon2.png" style="width:60px;"/>
        </ion-col>
      </ion-row>
      <ion-row>
        <ion-col>
          <img class="animate__animated animate__fadeInUp animate__slow" src="../../assets/icon3.png" style="width:60px"/>
        </ion-col>
        <ion-col>
          <img class="animate__animated animate__fadeInLeft animate__slow" src="../../assets/icon4.png" style="width:60px;"/>
        </ion-col>
      </ion-row>
    </ion-grid>
  </div>

一直在为 React 中的 Ionic v5 寻找类似的解决方案。没有发现任何明显的东西,所以在这里为任何涉足 React 的人添加它。

以下是对我有用的方法:

export const CenteredContent = ({ children }) => {
    return (
        <IonGrid style={{ height: "100%" }}>
            <IonRow class="ion-align-items-center" style={{ height: "100%" }}>
                <IonCol class="ion-text-center">
                    {children}
                </IonCol>
            </IonRow>
        </IonGrid>
    )
}

将内容放在中间,不要太多css(屏幕截图使用 IonSpinner 组件作为儿童道具): screenshot of what it looks like, since i am not allowed to embed images, yet...