CSS ・ Flexbox・Grid

flex-direction

アイテムの並ぶ方向

Flexbox で、子要素(フレックスアイテム)を並べる方向を指定します。横並び・縦並びと、その逆順を選べます。

初期値
row
適用対象
フレックスコンテナ
継承
しない
01

サンプルコード

HTML
1<div class="flex row">
2 <div class="item">1</div><div class="item">2</div><div class="item">3</div>
3</div>
4<div class="flex column">
5 <div class="item">1</div><div class="item">2</div><div class="item">3</div>
6</div>
CSS
1.flex {
2 display: flex;
3 gap: 6px;
4 margin-bottom: 12px;
5}
6.row {
7 flex-direction: row;
8}
9.column {
10 flex-direction: column;
11 align-items: flex-start;
12}
13.item {
14 padding: 8px 14px;
15 background: #b68235;
16 color: #fff;
17}
02

実行結果

ブラウザでの表示
03

解説

flex-direction は、display: flex を指定した親要素に書き、子要素を並べる方向(主軸)を決めます。初期値は横並びの row です。

column にすると縦に並びます。このとき主軸が縦になるため、justify-content は縦方向、align-items は横方向の配置を指定するように入れ替わります。

row-reverse・column-reverse は逆順に並べます。ただし見た目の順番とHTMLの順番がずれるため、読み上げやキーボード操作の順番に注意します。

04

応用例・注意点

指定できる値

値説明
row左から右へ横並び(初期値)
row-reverse右から左へ横並び
column上から下へ縦並び
column-reverse下から上へ縦並び

スマートフォンでは縦、PCでは横に並べる

メディアクエリで並ぶ方向を切り替えます。

CSS
1.cards {
2 display: flex;
3 flex-direction: column;
4 gap: 16px;
5}
6@media (min-width: 760px) {
7 .cards {
8 flex-direction: row;
9 }
10}

注意点

  1. 01flex-direction は、子要素ではなく display: flex を指定した親要素に書きます。
  2. 02reverse を使うと、見た目の順番とタブキーで移動する順番が逆になります。
↑↓ 選択Enter 移動Esc 閉じるCtrl K⌘K で開閉