1
0

More than 1 year has passed since last update.

Grid Layoutを学び直す

Last updated at Posted at 2022-12-02

ひとりCSS Advent Calendar 2022 3日目です。

Grid Layoutを学び直します。

Grid Layout にするには

親要素に display: grid; を指定すればできる。

サンプル

<div class="parent">
  <div class="child">
    child
  </div>
  <div class="child">
    child
  </div>
  <div class="child">
    child
  </div>
</div>
.parent {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
}

image.png

親要素に指定できるプロパティ

名前でサイズと位置を決めたいとき

grid-template-areas は、あらかじめ子要素に grid-area で名前をつけておく必要がある。
:pencil: 名前をもとにレイアウトを決められるので、コンテンツが入る一番外側のレイアウトを作るときに便利。

サイズで決めたいとき

  • 基本のサイズ指定
    • grid-template-columns - 横方向のサイズの指定
    • grid-template-rows - 縦方向のサイズの指定
  • 子が溢れたときの指定
    • grid-auto-columns - 横方向の暗黙的なサイズの指定
    • grid-auto-rows - 縦方向の暗黙的なサイズの指定
  • サイズの指定方法
    • 数字
    • auto - 子要素しだい
    • 1fr - 1frはひとマス分。
      • fr は fraction(分数の意味)の略らしい。
    • repeat - 繰り返しで指定できる
      • repeat(3, 1fr) なら 1fr のサイズの子要素3つ分という指定。
    • minmax - 最小値と最大値の指定
      • minmax(100px, auto) なら最小値が100px、最大値は auto という指定。
  • 余白
    • column-gap - 横方向の余白
    • row-gap - 縦方向の余白
    • gap - 余白のショートハンド
      • 2つ値を与えるときは gap column 半角空白を間に入れて、たて よこの順。
    • 過去は grid-column-gap のように頭に grid- がついていた。今はつけてもつけなくてもOKらしい。

配置を決めたいとき

  • place-items - 子要素の配置を決められるショートハンド
    • align-items, justify-items 半角スペース区切りで指定する
    • place-items: center で上下左右中央配置ができる

子要素に指定できるプロパティ

要素に名前をつけたいとき

grid-area

  • 例えば、grid-area: header; grid-area: main; grid-area: sidebar; とか
  • 名前をつけてわかりやすくできる。値にはダブルクオーテーションは不要。
  • コンテンツが入る一番外側のレイアウトを作るときに便利。

大きさの指定

  • ショートハンド - スラッシュで区切って書く
    • grid-column - 横方向の指定
    • grid-row - 縦方向の指定
    • 例えば、grid-column: 1/-1 なら左端から右端まで
      • 最小値は 1
      • マイナス値は逆方向から数えた位置
  • マス目(グリッド)で大きさを指定する
    • grid-column-start 横方向の開始位置
    • grid-column-end 横方向の終了位置
    • grid-row-start 縦方向の開始位置
    • grid-row-end 横方向の終了位置

遊んでみた

See the Pen Flexbox by Beco (@becolomochi) on CodePen.

↓こういうレイアウトも作れて楽しい

image.png

感想

  • たのしい
  • いろいろなプロパティが多く難しい
    • が、実装するなら使用するプロパティは限られてくる(多分。。)
  • まずやりたいレイアウトからどれを使えば想定した実装になるか逆算して作ると良さそう

参考

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0