【CSS】flexboxで左右の端に要素を配置するjustify-contentの基本

flexboxで左右の端に要素を配置したいときは、justify-contentを使うのが基本です。ナビゲーションメニュー、ボタンの並び、ヘッダー内のロゴとリンクの配置など、Web制作ではよく登場する場面です。まずは、「justify-contentは横方向の配置を決めるプロパティ」と理解すると分かりやすくなります。

justify-contentは主軸方向の配置を決める

flexboxでは、要素の並び方を「主軸」と「交差軸」で考えます。通常の横並びレイアウトでは、左から右が主軸になります。このときjustify-contentを使うと、子要素全体の配置を調整できます。

左右の端に要素を置きたい場合、よく使うのはspace-betweenです。これは、最初の要素を左端に、最後の要素を右端に配置し、その間の余白を均等に分配します。

.box {
  display: flex;
  justify-content: space-between;
}

この設定は、2つ以上の要素があるときに特に便利です。たとえば、左側にサイト名、右側にメニューを置きたい場合に使えます。

基本のHTMLとCSSの例

実際の書き方を見てみましょう。以下は、ヘッダー内で左右の端に要素を配置する例です。

<header class="site-header">
  <div class="logo">My Site</div>
  <nav class="nav">
    <a href="#">Home</a>
    <a href="#">About</a>
    <a href="#">Contact</a>
  </nav>
</header>
.site-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 16px 24px;
  border-bottom: 1px solid #ddd;
}

.nav {
  display: flex;
  gap: 16px;
}

このコードでは、site-headerにdisplay: flexを指定し、justify-content: space-betweenでロゴとナビゲーションを左右に離しています。さらにalign-items: centerで縦方向を中央揃えにしています。

space-betweenが向いている場面

justify-content: space-betweenは、左右に要素を分けたいときに分かりやすい方法です。特に以下のような場面でよく使われます。

  • ヘッダーの左にロゴ、右にメニューを置く
  • カード内でタイトルと価格を左右に分ける
  • フッターでコピーライトとリンクを左右に並べる

ただし、要素が1つしかない場合は左右に分かれる相手がいないため、space-betweenの効果はほとんどありません。また、要素数が増えると間隔の見え方が変わるので、配置したい内容に合っているか確認することが大切です。

よく使う他の値との違い

左右の端に置きたいときはspace-betweenが便利ですが、他の値も知っておくと使い分けやすくなります。

.box {
  display: flex;
  justify-content: flex-start; /* 左寄せ */
}

.box-center {
  display: flex;
  justify-content: center; /* 中央寄せ */
}

.box-end {
  display: flex;
  justify-content: flex-end; /* 右寄せ */
}

flex-startは左寄せ、centerは中央寄せ、flex-endは右寄せです。これらは「端に配置する」というより、「まとめてどこに寄せるか」を決める値です。左右の両端に振り分けたい場合は、やはりspace-betweenが基本になります。

使うときの注意点

flexboxで要素を左右の端に配置する場合、justify-contentだけでなく、親要素にdisplay: flexが必要です。これが設定されていないと、justify-contentは効きません。

また、横幅が足りないと要素が折り返されたり、意図しない見た目になったりすることがあります。ヘッダーやメニューのような横並びのレイアウトでは、flex-wrapの有無や、各要素の幅も合わせて確認すると安心です。

左右の端に要素を配置したいときは、まずdisplay: flexとjustify-content: space-betweenをセットで使う、と覚えておくと実務で役立ちます。シンプルな指定ですが、さまざまなレイアウトに応用しやすい基本テクニックです。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人