CSS
 Computer >> コンピューター >  >> プログラミング >> CSS

CSS Flexboxのjustify-contentプロパティでフレックスアイテムを水平方向に整列する方法

justify-contentプロパティとは

Flexboxレイアウトでは、フレックスアイテムが主軸(メイン軸)上のすべての利用可能なスペースを使い切らない場合があります。このようなとき、justify-contentプロパティを使用すると、余ったスペースの配分方法を指定し、アイテムを水平方向に思いどおりに整列させることができます。

justify-contentプロパティには、主に以下のような値を指定できます。

  • flex-start:アイテムを主軸の始端(デフォルトでは左側)に寄せて配置
  • center:アイテムを中央にまとめて配置
  • flex-end:アイテムを主軸の終端(右側)に寄せて配置
  • space-between:最初と最後のアイテムを両端に置き、残りを均等な間隔で配置
  • space-around:各アイテムの周囲に均等なスペースを配置

実装例

以下のコードを実行して、justify-contentプロパティの動作を実際に確認してみましょう。この例では、青色の背景を持つフレックスコンテナ内に4つのボックスを配置し、justify-content: center;によって中央揃えにしています。

<!DOCTYPE html>
<html>
  <head>
    <style>
      .mycontainer {
        display: flex;
        background-color: blue;
        justify-content: center;
      }
      .mycontainer > div {
        background-color: white;
        text-align: center;
        line-height: 40px;
        font-size: 25px;
        width: 100px;
        margin: 5px;
      }
    </style>
  </head>
  <body>
    <h1>Quiz</h1>
    <div class = "mycontainer">
      <div>Q1</div>
      <div>Q2</div>
      <div>Q3</div>
      <div>Q4</div>
    </div>
  </body>
</html>

ポイントのまとめ

  • justify-contentは主軸方向の配置を制御するプロパティです。
  • 交差軸(垂直方向)の配置を制御したい場合は、代わりにalign-itemsプロパティを使用します。
  • 値を変更するだけで配置を簡単に切り替えられるため、レスポンシブデザインやナビゲーションバーのレイアウトにも幅広く活用できます。
  1. CSSでフレックスラインをコンテナの先頭に表示する方法(align-content: flex-start)

    CSSのalign-contentプロパティにflex-startという値を指定すると、フレックスコンテナ内の複数のフレックスライン(行)をコンテナの先頭側に寄せて配置できます。 align-content: flex-startの基本 align-contentプロパティは、交差軸(cross axis)方向におけるフレックスライン全体の配置を制御するプロパティです。flex-startを指定すると、すべてのフレックスラインが交差軸の開始位置、つまりコンテナの先頭にまとめられて表示されます。 注意点として、align-contentが機能するのはflex-wrap: wrap;などで折り

  2. CSS FlexboxでDIV要素を左・中央・右に配置する方法|justify-contentの使い方

    CSSのjustify-contentプロパティを使用すると、フレックスコンテナの主軸方向(デフォルトでは水平方向)に沿って子要素の間や周囲のスペースを分配し、柔軟に配置を制御できます。本記事では、複数のDIV要素を「左・中央・右」のように分散配置する方法を、具体的なコード例と表示結果とともにわかりやすく解説します。 justify-contentプロパティの構文 justify-contentは、display: flex;を指定した親要素(フレックスコンテナ)に対して設定します。基本の構文は以下のとおりです。 セレクタ {     display: