跳到主要内容
版本:v8

ion-grid

shadow

网格是一个强大的移动优先 flexbox 系统,用于构建自定义布局。它由三个单元组成 —— 网格、。列将扩展以填满行,并将调整大小以适应更多列。它基于 12 列布局,根据屏幕大小有不同的断点。列数可以使用 CSS 自定义。

概述

  • 网格充当所有行和列的容器。网格占据其容器的全部宽度,但添加 fixed 属性将根据屏幕大小设置宽度,请参阅下面的固定网格
  • 行是列的水平分组,使列正确对齐。
  • 内容应放置在列内,只有列可以是行的直接子元素。
  • size 属性指示在默认每行 12 列中使用的列数。因此,可以向列添加 size="4" 以占据网格的 1/3(即 12 列中的 4 列)。
  • 没有 size 值的列将自动具有相等的宽度。例如,四列将各自动占 25% 的宽度。
  • 列宽以百分比设置,因此它们始终是流式的,并相对于其父元素调整大小。
  • 各个列之间有内边距。但是,可以通过向网格添加 ion-no-padding 类来移除网格和列的内边距。请参阅CSS 实用工具了解可应用于网格的更多样式。
  • 有五个网格层级,每个对应一个响应式断点:所有断点(超小)、小、中、大和超大。
  • 网格层级基于最小宽度,意味着它们适用于自己的层级和所有更大的层级(例如,size-sm="4" 适用于小、中、大和超大设备)。
  • 可以通过 CSS 变量自定义网格。请参阅自定义网格

默认断点

网格的默认断点和相应属性定义在下表中。当前无法自定义断点值。有关为何无法自定义的更多信息,请参阅媒体查询中的变量

名称宽度属性偏移属性推属性拉属性描述
xs0sizeoffsetpushpull当 (min-width: 0) 时设置列
sm576pxsizeSmoffsetSmpushSmpullSm当 (min-width: 576px) 时设置列
md768pxsizeMdoffsetMdpushMdpullMd当 (min-width: 768px) 时设置列
lg992pxsizeLgoffsetLgpushLgpullLg当 (min-width: 992px) 时设置列
xl1200pxsizeXloffsetXlpushXlpullXl当 (min-width: 1200px) 时设置列

基本用法

默认情况下,列在所有设备和屏幕尺寸下将在行内占据相等的宽度。

固定网格

网格占据其容器 100% 的宽度。通过向网格添加 fixed 属性,宽度将根据屏幕大小设置。每个断点的网格宽度列在下表中,但可以进行自定义。更多信息请参阅自定义网格。在 StackBlitz 中打开以下示例并调整屏幕大小,查看网格宽度变化。

名称描述
xs100%xs 屏幕宽度为 100%
sm540px当 (min-width: 576px) 时设置网格宽度为 540px
md720px当 (min-width: 768px) 时设置网格宽度为 720px
lg960px当 (min-width: 992px) 时设置网格宽度为 960px
xl1140px当 (min-width: 1200px) 时设置网格宽度为 1140px

列大小

可以将列设置为特定大小,以占用总列数中的一定数量,或根据其内容调整宽度。默认列数为 12,但可以自定义。更多信息请参阅下面的列数部分。

基于内容的大小

size 设置为 "auto" 后,列可以根据其内容的自然宽度自行调整大小。这在将列设置为绝对宽度(如特定像素数)时是必需的。自动宽度列旁边的列将调整大小以填满行。

指定大小

设置列的 size,其他列将自动围绕它调整大小。如果所有列都指定了大小,但总和未达到总列数,则列之后会有空白空间。

响应式大小

size 属性将为所有断点更改列宽。Column 还提供了几个在 "size" 末尾附加了断点名称的大小属性。这些属性可用于根据屏幕大小更改列的宽度。在 StackBlitz 中打开以下示例并调整屏幕大小,查看列宽变化。

列偏移

可以将列偏移以向右移动一定数量的列。

指定偏移

可以使用 offset 属性将列向右移动。此属性将列的左边距增加指定列数。它还会向右移动其右侧的列(如果有)。

响应式偏移

offset 属性将为所有断点更改列的左外边距。Column 还提供了几个在 "offset" 末尾附加了断点名称的偏移属性。这些属性可用于根据屏幕大小更改列的偏移量。在 StackBlitz 中打开以下示例并调整屏幕大小,查看列偏移变化。

列的推与拉

可以将列向右推或向左拉一定数量的列。

指定推与拉

通过添加 pushpull 属性重新排序列。这些属性将列的 leftright 调整指定的列数,从而方便地重新排序列。如果列被移动到另一个列的位置,它们将会重叠。

响应式推与拉

pushpull 属性将为所有断点更改列的位置。Column 还提供了几个在 "push"/"pull" 末尾附加了断点名称的 pushpull 属性。这些属性可用于根据屏幕大小更改列的位置。在 StackBlitz 中打开以下示例并调整屏幕大小,查看列位置变化。

对齐

垂直对齐

通过向行添加不同的类,所有列可以在行内垂直对齐。有关可用类的列表,请参阅CSS 实用工具

水平对齐

通过向行添加不同的类,所有列可以在行内水平对齐。有关可用类的列表,请参阅CSS 实用工具

自定义网格

使用我们内置的 CSS 变量,可以自定义预定义的网格属性。更改内边距值、列数等。

固定宽度

固定网格的宽度可以使用 --ion-grid-width CSS 变量为所有断点设置。要覆盖单个断点,请使用 --ion-grid-width-{breakpoint} CSS 变量。每个断点的默认值可以在固定网格部分找到。在 StackBlitz 中打开以下示例并调整屏幕大小,查看网格宽度变化。

列数

可以使用 --ion-grid-columns CSS 变量修改网格列的数量。默认有 12 列,但可以更改为任何正整数,并用于计算每列的宽度。

内边距

网格容器的内边距可以使用 --ion-grid-padding CSS 变量为所有断点设置。要覆盖单个断点,请使用 --ion-grid-padding-{breakpoint} CSS 变量。

列的内边距可以使用 --ion-grid-column-padding CSS 变量为所有断点设置。要覆盖单个断点,请使用 --ion-grid-column-padding-{breakpoint} CSS 变量。

属性

fixed

说明If true, the grid will have a fixed width based on the screen size.
属性fixed
类型boolean
默认值false

事件

该组件没有可用的事件。

方法

该组件没有可用的公共方法。

CSS Shadow Parts

该组件没有可用的 CSS 阴影部分。

CSS 自定义属性

Name说明
--ion-grid-paddingPadding for the Grid
--ion-grid-padding-lgPadding for the Grid on lg screens
--ion-grid-padding-mdPadding for the Grid on md screens
--ion-grid-padding-smPadding for the Grid on sm screens
--ion-grid-padding-xlPadding for the Grid on xl screens
--ion-grid-padding-xsPadding for the Grid on xs screens
--ion-grid-widthWidth of the fixed Grid
--ion-grid-width-lgWidth of the fixed Grid on lg screens
--ion-grid-width-mdWidth of the fixed Grid on md screens
--ion-grid-width-smWidth of the fixed Grid on sm screens
--ion-grid-width-xlWidth of the fixed Grid on xl screens
--ion-grid-width-xsWidth of the fixed Grid on xs screens

插槽

该组件没有可用的插槽。