サイトアイコン WEBデザインMATOME

CSSの基礎:フレックスボックス

フレックスボックス(Flexbox)は、CSSのレイアウトモジュールであり、
要素の配置と整列を柔軟かつ効率的に行うために使用されます。
フレックスボックスを使用することで、複雑なレイアウトを簡単に作成できます。
ここでは、フレックスボックスの基本と主要なプロパティについて詳しく説明します。

フレックスコンテナとフレックスアイテム

フレックスコンテナ

フレックスボックスを使用するには、まず親要素に display: flex; を指定して、
フレックスコンテナにします。
フレックスコンテナの直下の子要素がフレックスアイテムになります。

例)

css

.container {
    display: flex;
}

HTML

<div class="container">
    <div class="item">Item 1</div>
    <div class="item">Item 2</div>
    <div class="item">Item 3</div>
</div>

フレックスアイテム

フレックスコンテナの直下の子要素がフレックスアイテムになります。
フレックスアイテムは、フレックスコンテナ内で自動的に配置されます。

主軸と交差軸

フレックスボックスのレイアウトは、主軸(main axis)と交差軸(cross axis)に基づいています。
主軸はフレックスアイテムが配置される方向で、交差軸はその直角方向です。

主なフレックスボックスプロパティ

flex-direction

flex-direction プロパティは、主軸の方向を指定します。
主軸の方向を変更することで、フレックスアイテムの並び順を変更できます。

.container {
    display: flex;
    flex-direction: row; /* または row-reverse, column, column-reverse */
}

justify-content

justify-content プロパティは、主軸に沿ったフレックスアイテムの整列方法を指定します。
フレックスアイテムの間のスペース配分を制御します。

.container {
    display: flex;
    justify-content: center; /* または flex-start, flex-end, space-between, space-around, space-evenly */
}

align-items

align-items プロパティは、交差軸に沿ったフレックスアイテムの整列方法を指定します。
フレックスアイテムの高さを揃えます。

.container {
    display: flex;
    align-items: center; /* または flex-start, flex-end, stretch, baseline */
}

flex-wrap

flex-wrap プロパティは、
フレックスアイテムがコンテナ内に収まらない場合の折り返し方法を指定します。

.container {
    display: flex;
    flex-wrap: wrap; /* または nowrap, wrap-reverse */
}

align-content

align-content プロパティは、複数行のフレックスアイテムの間のスペース配分を指定します。
フレックスコンテナの交差軸に沿ってスペースを制御します。

.container {
    display: flex;
    align-content: space-between; /* または flex-start, flex-end, center, space-around, space-evenly */
}

フレックスアイテムのプロパティ

order

order プロパティは、フレックスアイテムの表示順序を指定します。
デフォルトの順序は0です。値が小さいほど前に表示されます。

.item {
    order: 1; /* デフォルトは0、値が小さいほど前に表示される */
}

flex-grow

flex-grow プロパティは、フレックスアイテムがフレックスコンテナ内の
空きスペースをどの程度拡大するかを指定します。
デフォルト値は0です。

.item {
    flex-grow: 1; /* フレックスコンテナ内の空きスペースを均等に拡大 */
}

flex-shrink

flex-shrink プロパティは、フレックスアイテムがフレックスコンテナ内の
スペース不足に応じてどの程度縮小するかを指定します。
デフォルト値は1です。

.item {
    flex-shrink: 0; /* フレックスアイテムを縮小しない */
}

flex-basis

flex-basis プロパティは、フレックスアイテムの初期サイズを指定します。
デフォルト値はautoです。

.item {
    flex-basis: 200px; /* フレックスアイテムの初期サイズを200pxに設定 */
}

flex

flex プロパティは、flex-growflex-shrinkflex-basis
一括で指定できる短縮プロパティです。

.item {
    flex: 1 1 200px; /* flex-grow, flex-shrink, flex-basis をまとめて設定 */
}

まとめ

フレックスボックスは、複雑なレイアウトを簡単に実現できる
強力なCSSレイアウトモジュールです。
display: flex; を使用してフレックスコンテナを作成し、
flex-directionjustify-contentalign-items などのプロパティを使用して
フレックスアイテムを整列させることができます。
これらのプロパティを適切に使用することで、柔軟でレスポンシブなデザインを作成できます。

モバイルバージョンを終了