【CSS3】Flexbox の複数行の揃え flex-wrap と align-content【図解】

Flexboxの基本の揃え(単一行)はこちら

目次

display: flex; を指定しただけ(初期値のまま)だと…

example_flex_nowrap

おりかえされず、ぼくたち(flexアイテム)は ぎゅうぎゅう だよ!

flex-wrap の初期値が nowrap(折り返さない)だからだよ!

横並び配置 flex-direction: row; の場合

flex-wrap

Flexコンテナー(親要素)の幅より Flexアイテム(子要素)の幅の合計が超える場合、折り返すかどうかの指定

example_flex-wrap

flex-wrap で使える値

Flexコンテナー(親要素)に指定するよ!

  • nowrap(初期値)
    • 折り返さない(単一行)
  • wrap
    • 上から並べていき、次の行(1つ下の行)に折り返す
  • wrap-reverse
    • 下から並べていき、前の行(1つ上の行)に折り返す

flex-wrap 使い方の例

.container {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
}

align-content

Flexアイテム(子要素)が折り返しの場合、基準に対して垂直方向(画面に方向)の Flexアイテム全体的な揃え

flex-wrap: nowrap; の場合、折り返さないので align-content は無効になります

flex-wrap が wrap か wrap-reverse の場合、align-content は有効になり使えます

align-content で使える値

Flexコンテナー(親要素)に指定するよ!

  • stretch(初期値)
    • 自動調整
    • flex-wrap: wrap; の場合、1つ目の行を上部に詰めて、2つ目の行以降 行間縦方向の余白が均等になるように配置
    • flex-wrap: wrap-reverse; の場合、1つ目の行を下部に詰めて、2つ目の行以降 行間縦方向の余白が均等になるように配置
  • start
    • 上揃え
  • center
    • 縦方向の中央揃え
  • end
    • 下揃え
  • space-around
    • 均等に間隔をあけて配置(両端からも間隔を設ける)
  • space-between
    • 両端からは間隔を設けず、均等に間隔をあけて配置

align-content の使い方の例

.container {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  align-content: center;
}

align-content と align-items

複数行の場合は align-content を、単一行の場合は align-items を使えばいいってこと?

実は align-content と align-items との合わせ技で自在に配置できるよ!

align-content は Flexアイテムを”全体的な“配置を決める

align-items は “各行ごとの“Flexアイテムの配置を決める

align-items など Flexboxの基本の揃え(単一行)はこちら

align-content と align-items との 合わせ技 の例

まず、align-content: center; でFlexアイテムを全体的に縦方向の中央揃えにすると、上下に余白を作れます

align-content:center
.container {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  align-content: center;
}

さらに、align-items: end; を加えると…

align-content:center+align-items:end
.container {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  align-content: center;
  align-items: end; //追加
}

Flexアイテムを全体的に縦方向の中央揃え上下に余白を作り、各行ごとは下揃えになります

align-content と align-items の値を逆にしてみると…

align-content:end
.container {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  align-content: end;
}
align-content:end+align-items:center
.container {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  align-content: end;
  align-items: center; //追加
}

Flexアイテムを全体的に下揃え各行ごとは縦方向の中央揃えになります

それぞれの値を入れ替わっただけで全然違う配置になるよ!

align-content:center+align-items:end

align-content: center;

align-items: end;

align-content:end+align-items:center

align-content: end;

align-items: center;

縦並び配置 flex-direction: column; の場合

flex-wrap

Flexコンテナー(親要素)の高さより Flexアイテム(子要素)の高さの合計が超える場合、折り返すかどうかの指定

example_flex-wrap--column

flex-wrap で使える値

Flexコンテナー(親要素)に指定するよ!

  • nowrap(初期値)
    • 折り返さない(単一行)
  • wrap
    • 左から並べていき、次の列(1つ右の列)に折り返す
  • wrap-reverse
    • 右から並べていき、前の列(1つ左の列)に折り返す

align-content

Flexアイテム(子要素)が折り返しの場合、基準に対して垂直方向(画面に方向)の Flexアイテム全体的な揃え

flex-wrap: nowrap; の場合、折り返さないので align-content は無効になります

flex_direction:column+align-content

align-content で使える値

Flexコンテナー(親要素)に指定するよ!

  • stretch(初期値)
    • 自動調整
    • flex-wrap: wrap; の場合、1つ目の列を左部に詰めて、2つ目の列以降 列間横方向の余白が均等になるように配置
    • flex-wrap: wrap-reverse; の場合、1つ目の列を右部に詰めて、2つ目の列以降 列間横方向の余白が均等になるように配置
  • start
    • 左揃え
  • center
    • 横方向の中央揃え
  • end
    • 右揃え
  • space-around
    • 均等に間隔をあけて配置(両端からも間隔を設ける)
  • space-between
    • 両端からは間隔を設けず、均等に間隔をあけて配置

align-content の使い方の例

.container {
  display: flex;
  flex-direction: column;
  flex-wrap: wrap;
  align-content: space-around;
}
最後まで読んでくださりありがとうございました。シェア頂けると嬉しいです!
  • URLをコピーしました!
  • URLをコピーしました!

ABOUT ME

WEB制作者
スキル:HTML・Sass(FLOCSS)・JavaScript・jQuery・WordPress

コメント

コメントする

CAPTCHA

目次