Examples
Three columns
size="4"
属性を使用することで、すべてのビューポートとデバイスにわたって3つの等幅カラムを作成できます。 responsive classes を追加して、ビューポートサイズによってレイアウトを変更します。
<template>
<Grid>
<GridCol :size="4">
.g-col-4
</GridCol>
<GridCol :size="4">
.g-col-4
</GridCol>
<GridCol :size="4">
.g-col-4
</GridCol>
</Grid>
</template>
Responsive
レスポンシブクラスを使用して、ビューポート間でレイアウトを調整します。ここでは、最も狭いビューポートでは2カラムから始め、ミディアムビューポート以上では3カラムに増やします。
<template>
<Grid>
<GridCol size="6 md-4">
.g-col-6 .g-col-md-4
</GridCol>
<GridCol size="6 md-4">
.g-col-6 .g-col-md-4
</GridCol>
<GridCol size="6 md-4">
.g-col-6 .g-col-md-4
</GridCol>
</Grid>
</template>
すべてのビューポートでこの2列のレイアウトと比較してみてください。
<template>
<Grid>
<GridCol size="6">
.g-col-6
</GridCol>
<GridCol size="6">
.g-col-6
</GridCol>
</Grid>
</template>
Wrapping
グリッドアイテムは、水平方向にスペースがなくなると自動的に次の行に折り返されます。このgap
は、グリッドアイテム間の水平方向と垂直方向のギャップにも適用されることに注意してください。
<template>
<Grid>
<GridCol :size="6">
.g-col-6
</GridCol>
<GridCol :size="6">
.g-col-6
</GridCol>
<GridCol :size="6">
.g-col-6
</GridCol>
<GridCol :size="6">
.g-col-6
</GridCol>
</Grid>
</template>
Starts
開始クラスは、デフォルトのグリッドのオフセットクラスを置き換えることを目的としていますが、完全に同じというわけではありません。CSS Gridは、「この列で開始」と「この列で終了」をブラウザに指示するスタイルを通してグリッドテンプレートを作成します。これらのプロパティはcolumn-start
とcolumn-end
です。開始クラスは全社の略記法です。カラムクラスと組み合わせることで、カラムのサイズや配置を自由に設定することができます。開始クラスは1
から始まりますが0
はこれらの値に対して無効です。
<template>
<Grid>
<GridCol
:size="3"
:colmun-start="2"
>
.g-col-3 .g-start-2
</GridCol>
<GridCol
:size="4"
:colmun-start="6"
>
>.g-col-4 .g-start-6
</GridCol>
</Grid>
</template>
Auto columns
グリッドアイテム(グリッドの直接の子要素)にクラスがない場合、各グリッドアイテムのサイズは自動的に1列になります。
<template>
<Grid>
<b-div>1</b-div>
<b-div>1</b-div>
<b-div>1</b-div>
<b-div>1</b-div>
<b-div>1</b-div>
<b-div>1</b-div>
<b-div>1</b-div>
<b-div>1</b-div>
<b-div>1</b-div>
<b-div>1</b-div>
<b-div>1</b-div>
<b-div>1</b-div>
</Grid>
</template>
この動作は、グリッドカラムクラスと混在させることができます。
<template>
<Grid>
<GridCol :size="6">
.g-col-6
</GridCol>
<b-div>1</b-div>
<b-div>1</b-div>
<b-div>1</b-div>
<b-div>1</b-div>
<b-div>1</b-div>
<b-div>1</b-div>
</Grid>
</template>
Nesting
デフォルトのグリッドシステムと同様に、CSSグリッドではGrid
の入れ子を簡単に行うことができます。ただし、デフォルトとは異なり、このグリッドは行、列、ギャップの変更を継承します。以下の例を見て下さい。
columns
属性でデフォルトのカラム数を上書きします。- 最初の自動カラムでは、カラム数は継承され、各カラムは利用可能な幅の3分の1になります。
- 2番目の自動カラムでは、ネストされた
Grid
のカラム数を12(デフォルト)にリセットしています。 - 3番目のオートカラムには、ネストされたコンテンツはありません。
実際には、デフォルトのグリッドシステムと比較して、より複雑なカスタムレイアウトが可能です。
<template>
<Grid :columns="3">
<GridCol>
First auto-column
<Grid>
<GridCol>Auto-column</GridCol>
<GridCol>Auto-column</GridCol>
</Grid>
</GridCol>
<GridCol>
Second auto-column
<Grid :columns="12">
<GridCol :size="6">
6 of 12
</GridCol>
<GridCol :size="4">
4 of 12
</GridCol>
<GridCol :size="2">
2 of 12
</GridCol>
</Grid>
</GridCol>
<GridCol>Third auto-column</GridCol>
</Grid>
</template>
Customizing
ローカルCSS変数で、列数、行数、隙間の幅をカスタマイズできます。
Attribute | Fallback value | Description |
---|---|---|
rows | 1 | The number of rows in your grid template |
columns | 12 | The number of columns in your grid template |
gap | 1.5rem | The size of the gap between columns (vertical and horizontal) |
これらのCSS変数にはデフォルト値がありません。代わりに、ローカルインスタンスが提供されるまで使用されるフォールバック値が適用されます。例えば、CSSグリッドの行に、rows:1
を使用していますが、rows
はまだどこにも設定されていないので無視されます。いったん設定されると、Grid
インスタンスはフォールバック値である1
の代わりにその値を使用します。
No grid classes
Grid
の直接の子要素は、グリッドアイテムなので、GridCol
を明示的に追加しなくてもサイズが決まります。
<template>
<Grid :columns="3">
<GridCol>Auto-column</GridCol>
<GridCol>Auto-column</GridCol>
<GridCol>Auto-column</GridCol>
</Grid>
</template>
Columns and gaps
列数とギャップを調整する。
<template>
<Grid
:columns="4"
gap="5rem"
>
<GridCol :size="2">
.g-col-2
</GridCol>
<GridCol :size="2">
.g-col-2
</GridCol>
</Grid>
</template>
<template>
<Grid
:columns="10"
gap="1rem"
>
<GridCol :size="2">
.g-col-6
</GridCol>
<GridCol :size="2">
.g-col-4
</GridCol>
</Grid>
</template>
Adding rows
行をふやし、列の配置を変える。
<template>
<Grid
:rows="3"
:columns="3"
>
<GridCol>Auto-column</GridCol>
<GridCol
:colmun-start="2"
:row="2"
>
Auto-column
</GridCol>
<GridCol
:colmun-start="3"
:row="3"
>
Auto-column
</GridCol>
</Grid>
</template>
Gaps
row-gap
を変更することで、垂直方向のギャップのみを変更できます。.grid
ではgap
を使用していますが、row-gap
とcolumn-gap
は必要に応じて変更できることに注意してください。
<template>
<Grid :row-gap="0">
<GridCol :size="6">
.g-col-6
</GridCol>
<GridCol :size="6">
.g-col-6
</GridCol>
<GridCol :size="6">
.g-col-6
</GridCol>
<GridCol :size="6">
.g-col-6
</GridCol>
</Grid>
</template>
そのため、垂直方向と水平方向のgap
を変えることができ、1つの値(全ての辺)または2つの値(垂直方向と水平方向)をとることができます。これは、gap
のインラインスタイル、またはgap
属性で適用できます。
<template>
<Grid gap=".25rem 1rem">
<GridCol :size="6">
.g-col-6
</GridCol>
<GridCol :size="6">
.g-col-6
</GridCol>
<GridCol :size="6">
.g-col-6
</GridCol>
<GridCol :size="6">
.g-col-6
</GridCol>
</Grid>
</template>