flex-directionの使い方:row・columnの違いとレイアウトの基本

CSSのflex-directionプロパティは、Flexboxレイアウトにおける「要素の並び方向」を決定するプロパティです。
この記事では、row・row-reverse・column・column-reverse の4種類の値を使った実例を紹介し、
横並びと縦並びの違いを視覚的に理解できるようにします。

1 実装のポイント

Flexboxを使う際、まずは親要素に display: flex; を指定します。
そのうえで flex-direction によって要素の並ぶ方向を決めます。


<div class="flex-container row">
  <div class="item">1</div>
  <div class="item">2</div>
  <div class="item">3</div>
</div>

<div class="flex-container column">
  <div class="item">A</div>
  <div class="item">B</div>
  <div class="item">C</div>
</div>
    

2 汎用CSS

以下のCSSでは、flex-direction の4つの値(row/row-reverse/column/column-reverse)を
それぞれ確認できるように設定しています。
各行にコメント(/**/)でわかりやすく説明しています。


/* ----------------------------------
 * flex-directionのデモ用CSS
 * --------------------------------- */

.flex-container { /** Flexboxの親要素 **/
  display: flex; /** Flexboxレイアウトを有効化 **/
  justify-content: center; /** 横方向の中央揃え **/
  align-items: center; /** 縦方向の中央揃え **/
  background: #f5f5f5; /** 背景を淡いグレーに **/
  border-radius: 10px; /** 角を少し丸く **/
  margin: 30px auto; /** 外側の余白(上下30px) **/
  padding: 20px; /** 内側余白 **/
  max-width: 600px; /** 最大幅を設定 **/
  height: 200px; /** 固定高さで見やすく **/
  gap: 10px; /** 各要素の間に10pxの隙間 **/
}

.flex-container .item { /** 子要素の共通スタイル **/
  background: #0073aa; /** WordPressブルー **/
  color: #fff; /** テキスト色を白に **/
  font-weight: bold; /** 太字 **/
  width: 80px; /** 幅を固定 **/
  height: 80px; /** 高さを固定 **/
  display: flex; /** 子要素内の中央揃え **/
  justify-content: center; /** 水平方向中央 **/
  align-items: center; /** 垂直方向中央 **/
  border-radius: 8px; /** 角を丸く **/
}

/** 横方向(左→右) **/
.flex-container.row {
  flex-direction: row; /** デフォルト:左から右に並ぶ **/
}

/** 横方向(右→左) **/
.flex-container.row-reverse {
  flex-direction: row-reverse; /** 右から左へ並ぶ **/
}

/** 縦方向(上→下) **/
.flex-container.column {
  flex-direction: column; /** 上から下に並ぶ **/
}

/** 縦方向(下→上) **/
.flex-container.column-reverse {
  flex-direction: column-reverse; /** 下から上に並ぶ **/
}
    

3 完成イメージ

1
2
3

A
B
C

4 まとめ

- row:左から右に要素を並べる(初期値)
- row-reverse:右から左へ要素を並べる
- column:上から下へ要素を縦に並べる
- column-reverse:下から上に逆順で並べる

flex-direction はFlexboxの基本軸を決める重要なプロパティです。
レスポンシブデザインでは、メディアクエリと組み合わせて
画面幅によってrowからcolumnへ自動的に切り替える実装も便利です。