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 | 下揃え |
center | boxの高さで中央揃え |
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.