CSS flex gridとgapで簡単に余白調整!レスポンシブ対応も楽々!

2022年1月28日

CSS

横並び、縦並びレイアウトでの余白指定、もう少し楽にコーディングしたい…

と思ったことはありませんか?

『gap』を使えばmargin、paddingなしで余白指定することが可能です!

gapの使い方

簡単に説明すると、親要素のCSS 指定だけで余白までつけることができます!

画像のようにdisplay: flex;(display: grid;)gap: ○px ◯px;の組み合わせで指定します。

具体的にどのような指定方法になっているかみていきましょう。

row-gap & column-gap

先程の例でgapに2つ数字を指定したと思いますが、

それが上記画像のrow-gapcolumn-gapになります。

・row-gap = 行の余白(上下の余白)

・column-gap = 列の余白(左右の余白)

です。

gap: 10px 15px;と指定したとすれば

上下の余白が10px左右の余白が15pxということになります。

もしも左右の余白だけ指定したい時は、

column-gap: 15px;もしくはgap: 0 15px;と書くことができ、

上下の余白だけ指定したい場合は、

row-gap: 10px;もしくはgap: 10px 0;と書くこともできます。

横並びでの実践

See the Pen nav by Mizuki (@Mziuki_Untrois) on CodePen.

上記のコードはよくあるようなナビゲーションメニューです。

PCで見ている方は、CODEPENのResultボタンを押していただくと、

スマホで見ている方はResultボタンを押して横にしていただくと

きちんと横並びになっていることが確認できます。

レスポンシブ対応できるようにflex: wrap;も指定して

画面幅が足りないときは折り返しするようになっています。

gapの余白指定は折り返した時にもきちんと適用されています。

縦並びでの実践

See the Pen nav2 by Mizuki (@Mziuki_Untrois) on CodePen.

先程の横並びのコードにflex-direction: column;を加えただけです!

gap:10px 15px;はあえてそのままにしていますが、

gap: 10px 0;またはrow-gap: 10px;に変更してもOKです。

display:grid;とセットで使う際も使い方は同じです!

まとめ

子要素にmarginやpaddingを指定するとどうしても

:last-of-typeや:first-of-typeで0を指定しなくちゃいけないので

コード量が増えてなかなか面倒でした。

ですが、このgapを利用すれば簡単に余白指定、レスポンシブ対応できます。

使ったことがない方はぜひ一度お試しください!

スッキリとしたCSS 設計を目指していきましょう^^

お問い合わせ

ご質問・ご相談・お見積もりなど、お気軽にお問い合わせください。
担当より連絡させていただきます。

お問い合わせはこちら