flex-boxは、横並びデザインだけでなく、縦一列のデザインもこなします。一次元のレイアウト用の機能です。

flex-boxの設定方法

flex-containerを作成する

divタグで親要素を追加

 レイアウトしたい要素=flex-item(=子要素)を入れておく入れ物=flex-container(=親要素)を作ります。flex-itemにしたい要素の前後に<div>タグを追加して、クラス設定をします。

HTML

<div class="container">  /* 親要素を追加、クラスを設定 */

  <img src="画像のurl"> /* 子要素(flex-item) */

  <p>文言</p> /* 子要素(flex-item) */

  <span>Text</span> /* 子要素(flex-item) */

</div>

 

flex-boxを指定

displayプロパティを使います。

 

flex

:displayの値で、flex-box に設定します。

 

CSS

.container {

  display: flex;

}

表示
漫画風の女の子、魔法の杖を持つ

文言

Text

 flex-item(子要素)は全て横並びとなります。

 

 横並びになったのは、わけがあります。flex-direction: row; がデフォルトで指定してあるからです。

flex-direction

 flex-itemを縦に並べるか、横に並べるかを指定するプロパティです。横に並べる場合を横軸、縦ならば縦軸、まとめて主軸(の向き)と言います。

row

:初期値。左から右へ横軸に沿って並べます。

 

row-reverse

:右から左へ横軸に沿って並べます。

 

column

:上から下へ縦軸に沿って並べます。

 

colum-reverse

:下から上へ縦軸に沿って並べます。

 

 -reverse 付きの値を使うことで、HTMLソースを変更せずに表示を逆順にすることができます

CSS

.container {

  display: flex;

  flex-direction: column-reverse;

}

表示
漫画風の女の子、魔法の杖を持つ

文言

Text

 

justify-content

 flex-itemを主軸上のどこに置くか、位置を指定するプロパティです。

flex-start

:主軸の先端に向かって寄せて配置されます。

 

flex-end

:主軸の終端に向かって寄せて配置されます。

CSS

.container {

  display: flex;

  justify-content: flex-end;

}

表示
漫画風の女の子、魔法の杖を持つ

文言

Text

 

center

:中央へ寄せて配置されます。

CSS

.container {

  display: flex;

  justify-content: center;

}

表示
漫画風の女の子、魔法の杖を持つ

文言

Text

 

space-between

:主軸の両端に揃えて均等に配置されます。(両端揃え)

CSS

.container {

  display: flex;

  justify-content: space-between;

}

表示
漫画風の女の子、魔法の杖を持つ

文言

Text

 

space-around

:均等な余白をつけて両端揃えで配置されます。

CSS

.container {

  display: flex;

  justify-content: space-around;

}

表示
漫画風の女の子、魔法の杖を持つ

文言

Text

 

align-item

 flex-itemの主軸と交差する軸(交差軸)、つまり横並びならば縦、縦ならば横のどこに置くか、位置を指定するプロパティです。

stretch

:初期値。交差軸方向へ親要素分引き延ばして表示されます。

 

flex-start

:交差軸上の先頭位置に表示されます。

 

center

:交差軸上の中央に表示されます。

CSS

.container {

  display: flex;

  justify-content: space-around;

  align-items: center;

}

表示
漫画風の女の子、魔法の杖を持つ

文言

Text

 

flex-end

:交差軸上の末尾位置に表示されます。

CSS

.container {

  display: flex;

  justify-content: space-around;

  align-items: flex-end;

}

表示
漫画風の女の子、魔法の杖を持つ

文言

Text

 

 flex-boxは、横揃えだけでなく縦一列にもそろえることができるため、top、bottom、left、rightなどではなく、start、endが使われます。

 この記事では、親コンテナで指定するプロパティを扱いました。子要素に指定して項目同士の表示を指示するプロパティもあります。