ionic 网格(Grid)

Ionic 网格系统(Grid)完整中文讲解

(适用于 Ionic 7 / 8,完全响应式,超好用!)

Ionic 的网格基于 CSS Flexbox + 12 列系统,比 Bootstrap 更轻量、更美观,而且完美适配手机、平板、桌面。

1. 基本结构(必须三层嵌套)

<ion-grid>                  <!-- 网格容器 -->
  <ion-row>                 <!-- 行 -->
    <ion-col>               <!-- 列(自动均分) -->
      1
    </ion-col>
    <ion-col>
      2
    </ion-col>
    <ion-col>
      3
    </ion-col>
  </ion-row>
</ion-grid>

效果:一行三个等宽方块(每列自动占 33.33%)

2. 常用写法速查表(强烈建议收藏)

需求写法效果说明
平均 2 列<ion-col>(不写宽度)每列 50%
平均 3 列<ion-col>(不写宽度)每列 33.33%
平均 4 列<ion-col>(不写宽度)每列 25%
固定宽度<ion-col size="4">占 4/12 = 33.33%
左 3 右 9(经典布局)<ion-col size="3">左侧</ion-col><ion-col size="9">右侧</ion-col>左侧窄,右侧宽
左 4 中 4 右 4三个 <ion-col size="4">三等分
自动宽度(内容撑开)<ion-col> + <ion-col size="auto">最后一个列撑满剩余空间
偏移(留白)<ion-col offset="2">左边空 2 格

3. 响应式写法(重点!一套代码适配所有屏幕)

<ion-row>
  <!-- 手机:占满12格(100%) -->
  <!-- 平板:占6格(50%) -->
  <!-- 桌面:占3格(25%) -->
  <ion-col size="12" size-md="6" size-lg="3">
    商品卡片
  </ion-col>
  <ion-col size="12" size-md="6" size-lg="3">
    商品卡片
  </ion-col>
  <ion-col size="12" size-md="6" size-lg="3">
    商品卡片
  </ion-col>
  <ion-col size="12" size-md="6" size-lg="3">
    商品卡片
  </ion-col>
</ion-row>

断点说明(自动生效):

属性触发宽度常见设备
size所有设备(默认)手机、平板、电脑
size-xs≥0px超小屏
size-sm≥576px小屏手机竖屏
size-md≥768px平板、大手机横屏
size-lg≥992px小桌面
size-xl≥1200px大桌面

4. 超实用完整示例

<ion-grid>
  <!-- 标题栏 -->
  <ion-row class="ion-align-items-center">
    <ion-col size="6">
      <h7>商品列表</h7>
    </ion-col>
    <ion-col size="6" class="ion-text-end">
      <ion-button fill="clear">查看更多 ></ion-button>
    </ion-col>
  </ion-row>

  <!-- 商品网格(响应式) -->
  <ion-row>
    <ion-col size="6" size-md="4" size-lg="3" size-xl="2" *ngFor="let item of products">
      <ion-card>
        <ion-img [src]="item.img"></ion-img>
        <ion-card-content>
          <ion-card-title>{{ item.name }}</ion-card-title>
          <ion-text color="danger"><h5>¥{{ item.price }}</h5></ion-text>
        </ion-card-content>
      </ion-card>
    </ion-col>
  </ion-row>
</ion-grid>

效果:

  • 手机:2 列
  • 平板:3 列
  • 电脑:4 列
  • 大屏:6 列

5. 对齐方式(超级实用)

<ion-row class="ion-align-items-center">   <!-- 垂直居中 -->
<ion-row class="ion-align-items-end">      <!-- 垂直底部对齐 -->
<ion-row class="ion-justify-content-center"> <!-- 水平居中 -->
<ion-row class="ion-justify-content-between"> <!-- 两端对齐 -->
<ion-row class="ion-justify-content-around">  <!-- 间隔均匀 -->

6. 无间距网格(去掉默认 padding)

<ion-grid class="ion-no-padding">
  <ion-row class="ion-no-padding">
    <ion-col class="ion-no-padding">
      <!-- 内容紧贴边 -->
    </ion-col>
  </ion-row>
</ion-grid>

或者全局去掉:

ion-col {
  --ion-grid-column-padding: 0px;
}

7. 官方文档(中文)

https://ionicframework.com/docs/layout/grid

总结一句话:

一套代码,所有设备自动适配,写起来比原生 flex 还简单!

需要我给你一个「完整响应式商城首页网格模板」(带卡片、搜索栏、分类、商品列表)吗?
支持一键复制直接跑,直接告诉我你要 Angular / React / Vue 哪个版本就行!

文章已创建 2588

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

相关文章

开始在上面输入您的搜索词,然后按回车进行搜索。按ESC取消。

返回顶部