Flexboxの使い方(折り返し, 横並び, 縦並び)

Flexboxの「基本的な概念」「各プロパティの使い方」について解説します。各プロパティごとにCODEPENでサンプルソースを作っています。ソースを編集しながら動きを確認してみてください。

目次

FlexコンテナとFlexアイテム

Flexコンテナ という親要素が、複数の Flexアイテム を子要素として持ちます。
FlexコンテナとFlexアイテムで設定するプロパティが異なります。

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

上記でいうと、 containerクラスが親要素、 itemクラスが子要素になります。
親要素のcontainerクラスに display:flex を定義してFlexコンテナにしてみます。

See the Pen Flex_parent1 by waku-waku (@raku-raku) on CodePen.

Flexコンテナで使うプロパティ

flex-wrap|折り返し

「子要素の合計幅」が「親要素の幅」を超えて複数行になる場合の折り返し設定ができます。

設定説明
nowrap(デフォルト)幅が収まるように縮小して、折り返さない
wrapはみ出たものは下に折り返す
wrap-reverseはみ出たものは上に折り返す

See the Pen Flex_parent_flex-wrap by waku-waku (@raku-raku) on CodePen.

flex-direction|並べる方向

Flexアイテムを並べる方向を設定できます。

設定説明
row(デフォルト)左から右へ、上から下へ
row-reverse右から左へ、上から下へ
column上から下へ、左から右へ
column-reverse下から上へ、左から右へ

See the Pen Flex_parent_flex-direction by waku-waku (@raku-raku) on CodePen.

justify-content|横の位置揃え

横方向にスペースがあるときの位置揃えを設定できます。
(flex-directionで横配置を指定)

設定説明
flex-start(デフォルト)左揃え
flex-end右揃え
center中央
space-between間隔空け(両端の隙間なし)
space-around間隔空け(両端の隙間あり)

See the Pen Flex_parent_justify-content by waku-waku (@raku-raku) on CodePen.

align-content|複数行での行間隔

複数行になったときの行間隔を設定できます。

設定説明
stretch(デフォルト)
flex-start上揃え
flex-end下揃え
center中央
space-between間隔空け(両端の隙間なし)
space-around間隔空け(両端の隙間あり)

See the Pen Flex_parent_align-content by waku-waku (@raku-raku) on CodePen.

align-items|Flexアイテムを並べる軸

Flexアイテムを並べる軸を設定できます。

設定説明
stretch(デフォルト)
flex-start上揃え
flex-end下揃え
centerboxの高さで中央揃え
baselineテキストのラインで中央揃え

See the Pen Flex_parent_align-items by waku-waku (@raku-raku) on CodePen.

Flexアイテムで使うプロパティ

order|表示順

表示順を設定できます。デフォルトは0で小さいもの順です。

See the Pen Flex_item-order by waku-waku (@raku-raku) on CodePen.

flex-grow|伸びる長さの比率

空いたスペース分だけ、伸びる長さの比率を設定できます。 デフォルトは0 です。
1つのflexアイテムだけに flex-grow: 1; と定義すると、空いたスペースを全て、定義したflexアイテムで利用できます。

See the Pen Flex_item-flex-grow by waku-waku (@raku-raku) on CodePen.

flex-shrink|縮む長さの比率

スペースが不足したとき、縮む長さの比率を設定できます。 デフォルトは1 です。

See the Pen Flex_item-flex-shrink by waku-waku (@raku-raku) on CodePen.

flex-basis|ベース幅

width同様に、ベース幅を設定できます。 デフォルトはauto です。

See the Pen Flex_item-flex-basis by waku-waku (@raku-raku) on CodePen.

flex|grow, shrink, basis

flex-grow、flex-shrink、flex-basisをまとめて設定できます。
デフォルトは、 0 1 auto となります。

align-self|位置揃え

align-itemsより優先して、位置揃えを設定できます。

See the Pen Flex_item_align-self by waku-waku (@raku-raku) on CodePen.

よかったらシェアしてね!
目次