Ionic Grid
Ionic's Grid is different from most other frameworks; it uses the Flexible Box Model. Moreover, on mobile, almost all phones support it. The `row` class specifies rows, and the `col` class specifies columns.
Equal Size Grid
If an element with the `row` class contains `col` classes, the columns will be set to equal size.
In the following example, the `row` class contains 5 `col` classes, and each column has a width of 20%.
<div class="row"> <div class="col">.col</div> <div class="col">.col</div> <div class="col">.col</div> <div class="col">.col</div> <div class="col">.col</div> </div>
Specify Column Width
You can set different sizes for columns within a row. By default, columns are divided into equal sizes. But you can also set column widths by percentage (one row is divided into 12 grids).
<div class="row"> <div class="col col-50">.col.col-50</div> <div class="col">.col</div> <div class="col">.col</div> </div> <div class="row"> <div class="col col-75">.col.col-75</div> <div class="col">.col</div> </div> <div class="row"> <div class="col">.col</div> <div class="col col-75">.col.col-75</div> </div> <div class="row"> <div class="col">.col</div> <div class="col">.col</div> </div>
Note: In the example, each `col` class automatically adds a border and gray background.
Below are some percentage class names for specifying column width:
| .col-10 | 10% |
| .col-20 | 20% |
| .col-25 | 25% |
| .col-33 | 33.3333% |
| .col-50 | 50% |
| .col-67 | 66.6666% |
| .col-75 | 75% |
| .col-80 | 80% |
| .col-90 | 90% |
Grid with Offsets
Columns can have a left offset, as shown in the following example:
<div class="row"> <div class="col col-33 col-offset-33">.col</div> <div class="col">.col</div> </div> <div class="row"> <div class="col col-33">.col</div> <div class="col col-33 col-offset-33">.col</div> </div> <div class="row"> <div class="col col-33 col-offset-67">.col</div> </div>
Below are some percentage offset class names:
| .col-offset-10 | 10% |
| .col-offset-20 | 20% |
| .col-offset-25 | 25% |
| .col-offset-33 | 33.3333% |
| .col-offset-50 | 50% |
| .col-offset-67 | 66.6666% |
| .col-offset-75 | 75% |
| .col-offset-80 | 80% |
| .col-offset-90 | 90% |
Vertical Alignment Grid
The Flexbox model makes it easy to set vertical alignment for columns. Vertical alignment includes top, middle, and bottom, and can be applied to all columns in a row or to specific columns.
In the example, the last column has the tallest content to better demonstrate vertical alignment.
<div class="row"> <div class="col">.col</div> <div class="col">.col</div> <div class="col">.col</div> <div class="col">1<br>2<br>3<br>4</div> </div> <div class="row"> <div class="col col-top">.col</div> <div class="col col-center">.col</div> <div class="col col-bottom">.col</div> <div class="col">1<br>2<br>3<br>4</div> </div> <div class="row row-top"> <div class="col">.col</div> <div class="col">.col</div> <div class="col">.col</div> <div class="col">1<br>2<br>3<br>4</div> </div> <div class="row row-center"> <div class="col">.col</div> <div class="col">.col</div> <div class="col">.col</div> <div class="col">1<br>2<br>3<br>4</div> </div> <div class="row row-bottom"> <div class="col">.col</div> <div class="col">.col</div> <div class="col">.col</div> <div class="col">1<br>2<br>3<br>4</div> </div>
Responsive Grid
When handheld device screens switch orientation, such as landscape or portrait, the grid in each row needs to be able to adapt its size based on different widths.
The responsive classes for different devices are as follows:
| Responsive Classes | Description |
| .responsive-sm | Less than phone landscape |
| .responsive-md | Less than tablet portrait |
| .responsive-lg | Less than tablet landscape |
<div class="row responsive-sm"> <div class="col">.col</div> <div class="col">.col</div> <div class="col">.col</div> <div class="col">.col</div> </div>Other Extensions