grid-columnプロパティ
grid-columnプロパティは、グリッド内の要素の列方向の開始位置と終了位置を設定します。プロパティの値は、スラッシュで区切られた正または負の数値で指定できます。最初の数値は要素の開始位置、2番目の数値は終了位置を示します。
値として正の数値を指定した場合、要素の位置は左から右へとカウントされます。負の数値を指定すると、要素は逆順、つまり右から左に配置されます。
構文
セレクタ {
grid-column: 開始位置 / 終了位置;
}
例
グリッド内の要素に開始位置と終了位置を設定してみましょう:
<div id="parent">
<div id="elem1">1</div>
<div id="elem2">2</div>
<div id="elem3">3</div>
</div>
#parent {
display: grid;
padding: 10px;
border: 2px solid #696989;
}
#parent > div {
padding: 10px;
border: 1px solid #696989;
}
#elem1 {
grid-column: 1 / 2;
}
#elem2 {
grid-column: 1 / 3;
}
#elem3 {
grid-column: 1 / 4;
}
:
例
次に、grid-columnプロパティに負の数値を指定してみます:
<div id="parent">
<div id="elem1">1</div>
<div id="elem2">2</div>
<div id="elem3">3</div>
</div>
#parent {
display: grid;
padding: 10px;
border: 2px solid #696989;
}
#parent > div {
padding: 10px;
border: 1px solid #696989;
}
#elem1 {
grid-column: 1 / -2;
}
#elem2 {
grid-column: 1 / -3;
}
#elem3 {
grid-column: 1 / -4;
}
:
例
次に、1番目、2番目、3番目の要素を1行目に配置し、4番目の要素が2行目全体を占めるようにしてみましょう:
<div id="parent">
<div id="elem1">1</div>
<div id="elem2">2</div>
<div id="elem3">3</div>
<div id="elem4">4</div>
</div>
#parent {
display: grid;
padding: 10px;
border: 2px solid #696989;
}
#parent > div {
padding: 10px;
border: 1px solid #696989;
}
#elem1 {
grid-column: 1 / 2;
}
#elem2 {
grid-column: 2 / 3;
}
#elem3 {
grid-column: 3 / 4;
}
#elem4 {
grid-column: 1 / 4;
}
:
例
隣接する要素が占める列が重なった場合、後続の各要素は1行下にシフトします。この特性を利用して、1番目の要素を1行目、2番目の要素を2行目、3番目と4番目の要素を3行目に配置してみましょう:
<div id="parent">
<div id="elem1">1</div>
<div id="elem2">2</div>
<div id="elem3">3</div>
<div id="elem4">4</div>
</div>
#parent {
display: grid;
padding: 10px;
border: 2px solid #696989;
}
#parent > div {
padding: 10px;
border: 1px solid #696989;
}
#elem1 {
grid-column: 1 / 4;
}
#elem2 {
grid-column: 2 / 3;
}
#elem3 {
grid-column: 1 / 2;
}
#elem4 {
grid-column: 3 / 4;
}
:
例
grid-columnプロパティとgrid-rowプロパティを組み合わせてみましょう:
<div id="parent">
<div id="elem1">1</div>
<div id="elem2">2</div>
<div id="elem3">3</div>
<div id="elem4">4</div>
</div>
#parent {
display: grid;
grid-template-columns: 2fr 1fr 1fr;
border: 2px solid #696989;
padding: 10px;
height: 300px;
width: 400px;
}
#parent > div {
padding: 10px;
border: 1px solid #696989;
}
#elem1 {
grid-row: 1 / 3;
}
#elem2 {
grid-row: 1 / 2;
}
#elem3 {
grid-row: 1 / 2;
}
#elem4 {
grid-row: 2 / 3;
grid-column: 2 / 4;
}
:
例
次に、1番目と5番目のブロックが行全体を占め、2番目のブロックが2行2列、3番目と4番目のブロックが1行2列を占めるようにしてみましょう:
<div id="parent">
<div id="elem1">1</div>
<div id="elem2">2</div>
<div id="elem3">3</div>
<div id="elem4">4</div>
<div id="elem5">5</div>
</div>
#parent {
display: grid;
grid-template-columns: 2fr 1fr 1fr;
border: 2px solid #696989;
padding: 10px;
height: 300px;
width: 400px;
}
#parent > div {
padding: 10px;
border: 1px solid #696989;
}
#elem1 {
grid-row: 1 / 2;
grid-column: 1 / 4;
}
#elem2 {
grid-row: 2 / 4;
grid-column: 1 / 2;
}
#elem3 {
grid-row: 2 / 3;
grid-column: 2 / 4;
}
#elem4 {
grid-row: 3 / 3;
grid-column: 2 / 4;
}
#elem5 {
grid-row: 4 / 5;
grid-column: 1 / 4;
}
:
関連項目
-
グリッド内の要素の行方向の開始位置と終了位置を設定する
grid-rowプロパティ -
グリッド内の要素の列方向の開始位置を設定する
grid-column-startプロパティ -
グリッド内の要素の列方向の終了位置を設定する
grid-column-endプロパティ -
グリッドの列数と幅を設定する
grid-template-columnsプロパティ -
暗黙的なグリッドの列数と幅を設定する
grid-auto-columnsプロパティ