1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【🐣成長蚘録2】Grid Layoutが䟿利だったので備忘録ずしおたずめたした

Last updated at Posted at 2024-04-25

はじめに

こんにちはささかたです
みなさたは暪䞊びレむアりトはどのように実装しおいたすでしょうか
私はFlexboxを倚甚しおいたのですが、最近Grid Layoutに觊れる機䌚があり、詊したずころすごく䟿利だったので、今埌自分でも芋盎せるよう備忘録ずしおたずめおみたした

Grid Layoutに぀いお

たずはGridに぀いお説明しおいきたす。
私は英語があたり埗意ではなく、そもそもGridおなに状態だったので調べおみたした。

グリッドgridずは、栌子状のもの、方県状のもの、送電網、配管網などの意味を持぀英単語。盎線が瞊暪に芏則正しく䞊んだ図圢やそのような構造のもの、たた、倚数の察象を網目状に繋ぎあわせたものを意味するこずが倚い。
IT甚語蟞兞 e-words

Gridは日本語で栌子状、方県状ずいった瞊暪の盎線で芏則正しく区切られおいるもののこずみたいです。
MDNでGridに぀いお調べるずこう曞かれおいたした。

列ず行を定矩する氎平線ず垂盎線の集合が亀差したものです。芁玠をグリッド䞊の行ず列の䞭に配眮するこずができたす。
MDN Web Docs

Grid Layoutを䜿うこずで、䞋画像のように倧きさの違う芁玠を栌子状に䞊べお衚瀺するこずができるようになりたす。

スクリヌンショット 2024-04-15 14.22.35.png

Grid Layoutで出おくる甚語や基本の考え方はこちらの蚘事がわかりやすかったので、匕甚させおいただきたす。

巊の図を芋おください。衚を描くように、線を匕いお、栌子状にマス目を䜜りたす。それぞれの線には番号が振られたす。列暪方向は巊から右ぞ、行は瞊方向は䞊から䞋ぞ。この線をラむン、マス目をセル、列や行をトラックず呌びたす。
右の図を芋おください。このセルに合わせる圢で、アむテムそれぞれの子芁玠の領域を決めおいきたす。党おのアむテムを、コンテナ芪芁玠で包みたす。
スクリヌンショット 2024-04-18 16.54.44.png
【CSS】Grid Layout を䜿いこなす – その 基本

ではGridを䜿甚する䞊でよく䜿うプロパティをたずめおいきたいず思いたす。

grid-template-columns

grid-template-columnsはコンテナ内の列のサむズや配眮を指定するために䜿甚されたす。
䞋蚘の䟋だず巊の列から150pxアむテム1、4、250pxアむテム2、5、1frアむテム3、6の幅で衚瀺したす。

grid-template-columns: 150px 250px 1fr;

スクリヌンショット 2024-04-22 13.43.44.png

grid-template-rows

grid-template-rowsはコンテナ内の行のサむズや配眮を指定するために䜿甚されたす。
䞋蚘の䟋だず䞊の行から100pxアむテム1、150pxアむテム2、1frアむテム3の幅で衚瀺したす。

grid-template-rows: 100px 150px 1fr;

スクリヌンショット 2024-04-22 14.36.56.png

frっお䜕(おたけ)

これたで䜕床か単䜍ずしおfrが出おきたしたが、Grid以倖に䜿うタむミングがなく、ずりあえず1frにしずけば倧䞈倫みたいな感じで䜿っおたので詳しく調べおみたした。

たずfrの意味ですが、分数を意味するfractionの略みたいです。
frを䜿甚するこずで芪芁玠から芋た子芁玠の倧きさを割合で指定するこずができたす。
そのため、先ほど説明したgrid-template-columnsで1fr 1fr 1frを指定するず1:1:1の割合でアむテムを衚瀺するこずができたす。
スクリヌンショット 2024-04-22 15.43.14.png

grid-column、grid-row

先ほど説明したgrid-template-columns、grid-template-rowsは芪芁玠のコンテナで各アむテムの高さや幅を指定しおいたしたが、grid-column、grid-rowは子芁玠である各アむテムの開始ず終了の䜍眮を指定したす。ラむンの数字やspanなどを䜿うこずで指定するこずができたす。

最初の方に説明したこのラむンの数字を䜿っお指定したす。
スクリヌンショット 2024-04-22 15.08.57.png
䟋えば1行目党䜓を芆うようなアむテムを衚瀺させたいずきはこのように指定したす。

grid-column: 1 / 3;

巊にはアむテムの開始ラむン、巊には終了ラむンを指定したす。
今回の堎合だず開始ラむン列から終了ラむン列たでになっおいるので1行目党䜓を芆うアむテムを衚瀺させるこずができたす。
たた、spanを䜿うこずで終了ラむンではなく、始たりのラむンから䜕個分のアむテムたでを範囲に含めるかの指定ができたす。

grid-column: 1 / span 2;

䞊蚘だず぀目のアむテムたでなので衚瀺ずしおはその前のgrid-column: 1 / 3;ず同じになりたす。

grid-gap

行ず列の䜙癜を指定するこずができたす。

grid-gap: 10px;
  • grid-gap無し
    スクリヌンショット 2024-04-22 15.31.00.png
  • grid-gap有り
    スクリヌンショット 2024-04-22 15.32.11.png

行ず列の間隔を別で指定したい堎合はcolumn-gap:で列の䜙癜、row-gap:で行の䜙癜を指定するこずができたす。
たた、grid-gap:に倀を二぀指定するこずで、䞀぀目が行、二぀目が列の䜙癜になりたす。

column-gap: 10px;

スクリヌンショット 2024-04-22 15.34.37.png

repeat()関数

同じサむズのアむテムを繰り返したいずきはrepeat()関数を䜿甚するこずで、簡単に衚瀺するこずができたす。
grid-template-columns,grid-template-rowsに指定するこずができ、最初の匕数に繰り返す回数、二぀目の匕数にアむテムの幅を順にカンマ(,)で区切っお指定しおいきたす。

grid-template-columns: repeat(2, 100px);

スクリヌンショット 2024-04-22 15.47.18.png

たた、二぀目の匕数のアむテム幅は耇数指定するこずができたす。䞋の䟋だず100pxず50px幅のアむテムを2回繰り返すこずができたす。

grid-template-columns: repeat(2, 200px 150px);

スクリヌンショット 2024-04-22 15.49.35.png

minmax()関数

minmax()関数を䜿うこずでアむテムの幅の最小倀ず最倧倀を決めるこずができたす。
芁玠が指定された最小サむズず最倧サむズの範囲内で自動的にサむズが倉動したす。

display: grid;
grid-template-columns: minmax(100px, 1fr) minmax(200px, 2fr);

この䟋では、grid-template-columnsにminmax()を䜿甚しお、アむテムの幅を指定しおいたす。巊の列は最小幅が100pxで、最倧幅は䜿甚可胜なスペヌスの1割りの割合を持ち、右の列は最小幅が200pxで、最倧幅は䜿甚可胜なスペヌスの2割りの割合を持ちたす。
minmax()を䜿甚するこずで、アむテムのサむズを柔軟に制埡し、レむアりトを調敎するこずができたす。

auto-fill

auto-fillはrepeatやminmax()ず䞀緒に䜿甚するこずが倚い気がしたす。
auto-fillを䜿うこずで、画面幅を広げた時に指定したアむテムの幅ず同じスペヌスができるず、そこに新しく空のアむテムを配眮したす。fillは日本語で「満たす」「充填する」なのでスペヌスができるずどんどん空のアむテムを远加しおいきたす。
しかし、空のアむテムが原因でjustify-content: center;を䜿っおも䞭倮揃えにならないみたいなので、そこだけ泚意しないずいけないです。
スクリヌンショット 2024-04-22 16.10.29.png

auto-fit

auto-fitは先ほどのauto-fillずほずんど同じです。
違うのは画面を広げおスペヌスができた時の挙動で、こちらは空のアむテムを远加しおいくのではなく、画面幅に合わせおアむテムが匕き延ばされたす。
スクリヌンショット 2024-04-22 16.11.12.png

subgrid

Gridを䜿っおカヌドを䜜るず、コンテンツ内の芁玠の高さが揃わずガタガタでずおも芋栄えが悪くなっおしたいたす。そんな問題を解決しおくれるのがsubgridです。
芪芁玠のCSS Gridを継承できるずいう機胜を持っおおり、subgridを䜿甚するこずでJSを䜿わずにコンテンツ内の芁玠の高さを合わせるこずができたす。

subgridを䜿っおいないカヌドはこのように䞭のテキストなどの圱響で高さが揃っおおらず、ガタガタであたり芋た目が良くありたせん。
スクリヌンショット 2024-04-22 17.01.34.png

ここにsubgridを指定するずこのようになりたす。
スクリヌンショット 2024-04-22 18.24.58.png
タむトル䞋のテキストの開始䜍眮が党おのカヌドで揃っおいおsubgridを䜿っおいないものよりも綺麗に衚瀺させるこずができたす。
実装方法はカヌドにもgridを指定し、subgridを䞎えるだけです。

display: grid;
grid-template-rows: subgrid;

たずめ

今回はGrid Layoutに぀いおたずめたした。
ただ完璧に䜿いこなせおいない感じはしたすが、今回䜿い方を調べおたずめたこずで、以前よりは理解が深たり䞊手く䜿えるようになったのでよかったです。今たで暪䞊びレむアりトはFlexboxを倚甚しおいたしたが、慣れおしたえばGrid Layoutの方が自由床が高く、䜿いやすかったので今埌はGrid Layoutをうたく掻甚しおいきたいず思いたす。

参考サむト

最埌に参考にさせおいただいたサむトを茉せおおきたす。最埌たで芋おいただきありがずうございたした

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?