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

CSSでフレックスコンテナの中央にフレックスアイテムを配置する方法

CSSのFlexboxレイアウトでは、align-itemsプロパティにcenterを指定することで、フレックスアイテムをコンテナの交差軸(垂直方向)の中央に配置できます。

align-itemsプロパティは、フレックスコンテナ内のアイテムを主軸に対して垂直な方向(デフォルトでは縦方向)にどのように揃えるかを制御します。値としてcenterを設定すると、各アイテムはコンテナの高さの中心に揃えられます。

align-items: center の主な特徴

  • アイテムがコンテナの垂直方向の中央に配置される
  • アイテムごとに高さが異なっていても、それぞれ中央揃えになる
  • flex-direction: column を指定した場合は、水平方向の中央揃えとして機能する

実装例

以下のコードでは、オレンジ色の背景を持つフレックスコンテナの中に、4つのフレックスアイテムを垂直方向の中央に配置しています。

<!DOCTYPE html>
<html>
  <head>
    <style>
      .mycontainer {
        display: flex;
        background-color: orange;
        align-items: center;
        height: 150px;
        width: 600px;
      }
      .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>

コードの解説

  • display: flex; — コンテナをフレックスボックスとして定義し、子要素をフレックスアイテムとして扱います。
  • align-items: center; — フレックスアイテムをコンテナの垂直方向の中央に配置します。この例では、高さ150pxのコンテナ内でアイテムが上下中央に揃います。
  • height: 150px; — 中央揃えの効果を確認できるよう、コンテナに明示的な高さを設定しています。

このコードを実行すると、Q1からQ4までの4つの白いボックスが、オレンジ色のコンテナの垂直方向の中央にきれいに並んで表示されます。align-itemsの値をflex-startやflex-endなどに変更すると、配置位置がどのように変化するか試してみると理解が深まります。

  1. CSSでフレックスアイテムをコンテナの中央に揃える方法

    CSSでフレックスアイテム(flexアイテム)をコンテナの中央に配置したい場合は、justify-content プロパティに center を指定します。このプロパティは、主軸(デフォルトでは水平方向)に沿ってフレックスアイテムをどのように配置するかを制御するもので、center を設定すると余白が均等に分配され、アイテム全体がコンテナの中央にまとまります。justify-content の基本的な使い方親要素に display: flex; を適用したうえで、justify-content: center; を追加するだけで、子要素が中央寄せされます。以下は代表的な指定例です。.mycon

  2. 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;などで折り