FlexboxとCSS Gridは混在していいの? 実務に役立つ使い分けと注意点

FlexboxとCSS Gridは混在していいの?使い分けと注意点 HTML・CSS・js

こんにちは!

先日、後輩というか、知り合いのデザイン事務所所属の若手Webデザイナーさんから、こんな質問を受けました。

「FlexboxとCSS Gridって、混在させても良いものですか?」

なるほど〜!

実はこれ、ジブンも以前、同じように悩んだ時期があったので、ちょっとほっこりした気持ちになりました!

FlexboxとCSS Gridが「混在」しても問題ないの?

結論:技術的には問題無し!

この質問の背景には、大きく分けて次の2種類の疑問点期待している回答が含まれているだろうと思います。

(1)CSSの仕様(W3C的)に問題はないのか?
(2)プロジェクトや取り組んでいる案件、そしてチームのルールとしては大丈夫なのか?

(1)CSSの仕様としては混在OKです

FlexboxもCSS Gridも、どちらもW3Cの公式仕様として策定されているレイアウトシステムです。

現在の規格「CSS3」では、どちらもバリバリの現役です。

ですから、「どちらか一方のみを利用する」「両方を混在させる」のいずれを選択しても、「正解/不正解」ということはありません

混在OKということはむしろ、レイアウトの目的や構造に応じて適材適所で使い分けるのが正解!

心配であれば、W3Cによる「バリデーションチェック」で試すこともできますよ!

(2)プロジェクトや案件、チームのルールはしっかり確認を!

ただし、参加しているプロジェクトや案件、チームによっては「レイアウトはFlexboxもしくは、CSS Gridだけに統一」などのポリシーを持っている場合があります。

そうしたプロジェクトや案件、チームなどの独自ルールがある場合、必ず「ドキュメント」と呼ばれるマニュアルが存在しているはずです。

あなたをはじめとした関係者へのアナウンス、メールもしくはSlackやChatworkなどといったメッセージングツールなどで、「コーディングガイドライン」「マニュアル」などの案内が届いていませんか?

まずは、そうしたドキュメントに当たってみましょう!

それでも「わからないポイント」などが残るようでしたら、遠慮なく(臆せず)プロマネや直接の担当者に問い合わせましょう

最もマズイ対処法(最悪の選択)は、勝手な(独自)解釈です!

コーディングガイドラインや設計ドキュメントの確認、あるいはプロマネなどへの確認を行っておくと安心!

FlexboxとCSS Gridはどう使い分ければいいの?

FlexboxとCSS Gridが「混在」しても問題ない? という質問には、さらにはもう一つの疑問点が隠れているかもしれませんね!

それは、「どのような場面でFlexboxとCSS Gridを使い分けるべき?」という疑問かも!

だとしたら、具体的にはどんな場面でFlexboxとCSS Gridを使い分けると良いのでしょうか?

ここを腹落ちさせて自分の知識とするためには、FlexboxとCSS Gridそれぞれの「特徴」を理解しておくことが早道だと思います!

Flexboxが得意なこと

  1. 一方向(横or縦)の要素(アイテム)の整列
  2. アイテム間の間隔調整
  3. ナビゲーションやボタン配置などのパーツ単位のレイアウト

CSS Gridが得意なこと

  1. 2次元(行×列)の複雑なレイアウト
  2. カードレイアウト、雑誌風レイアウトなど
  3. 大枠のコンテンツ構造設置レスポンシブ調整

つまり、表現したいレイアウトやデザインの実現に向け、FlexboxまたはCSS Gridの得意分野(特性)を活かした使い分けを行うことがポイントです。

こうした「使い分け」によってコードをスッキリ記述でき、その結果、メンテナンスや修正などの管理がしやすくなるのです。

メンテナンスや修正のしやすさという意味では、「レイアウトやデザインの意図を理解しやすいCSS」ということも重要ですね!

CSSフレームワークを使う場合には注意が必要

上手に使い分ければOKが基本とはいえ、次のようなケースでは【注意が必要】です。

例えば、BootstrapTailwind CSSなどのCSSフレームワークを利用することが前提の場合は注意が必要です。Wordpressのテーマも同様ですね!

  1. 既存のユーティリティクラス(基本レイアウト、パーツ)やグリッドシステム(レイアウト構造)と競合しないか?
  2. フレームワークの思想に沿った使い方になっているか?

ポイントとしては、無駄なCSSコーディングやレイアウト崩れを防ぐために、ドキュメントやマニュアルなどを確認しよう!という点に尽きます!

コードレビューやAIを活用してみよう

それでも自信を持てないときや、「混在させていいのかな?」と迷ったときは、先輩やチームメンバーにコードレビューをお願いしてみてはいかがでしょうか?

もしくは、身近に先輩などが居ないフリーランスなどであれば、AI(ChatGPTなど)さんに「お願い」してみては?

今や「けっこういい感じ」というか、コードを貼るだけで「かなり正確(精確)に評価」してもらえますので!