ブログ

どっちを使う?Grid とFlex

2022.12.05 : Yamamoto Naoki
Coding

「grid」「flex」の両方が使えるようになって、CSSコーディングが便利になりました。
しかし、使い所の判断って難しい気がしますよね。
最近まで、「flex」一択でしたが、「grid」が加わり記述方法に戸惑いましたが最近は「grid」にも慣れてきましたので、現在個人的な意見として「grid」「flex」の使い所を書いてみようと思います。
※まだ経験値を継いでいる段階なので、今後変わる場合があります。

grid

文字通り、レイアウトが格子状になるものに向いています。

1.全体のレイアウト

全体的なレイアウトに使用します。
コンテンツが少ない場合、フッターを下部に設置する記述が便利ですね。

2.上下左右センター

Flexでも可能ですが、以下の2行でいけるので、ソースが若干短くなっていいですね。

display: grid;
place-items: center;

3.等幅の繰り返し

カード的な表示とか、以下の表示でできるので便利です。

display: grid;
grid-template-columns: repeat(auto-fill, minmax(265px, 1fr));

Flex

「grid」でも、できることが多いのですが、一応格子状以外のものにしています。

1.グローバルメニュー

大体が1列に並んでいるので「flex」でいいのではと思います。

2.左右に分かれる単純なボックス

左に画像、右にテキストなどで、以下の記述すると簡単に左右が入れ替わります。

display: flex;
flex-direction: row-reverse;

共通

「grid」「flex」で「gap」があります。
これが一番便利ではないか思います。
「gap」がないときは、ネガティブマージンを使っていました。「gap」の登場で「grid」「flex」の子要素の間隔が「gap」一つで可能になり、コードもスッキリしたと思います。

最後に

なんだかんだ言って、「grid」が便利だということ。
「grid」であれあば、子要素の大きさも、「grid」内に記述できるため、コード的にもメンテナンス性的にも、スッキリしていい感じです。

難点を言えば、複雑なレイアウトを「grid」でやろうとすると、頭だけでは難しく、紙に書かないと混乱してしまうことでしょうか?これも慣れだと思うのですが・・・。

最後の最後に、display: float;  もたまに使いますよ。

アーカイブ

新しいサイト制作や、既存サイトの運用に関するお困りごとなどございましたらご依頼、ご相談ください。

ビジネスやサービスに最適なウェブ制作、デザインをおこなっている株式会社ナナサンの会社案内をダウンロードいただけます。

制作依頼・ご相談 資料ダウンロード
イメージ:制作依頼・ご相談
イメージ:制作依頼・ご相談