row | column主軸に使う論理軸を選ぶ
rowはインライン軸、columnはブロック軸を主軸にします。横書きでは横方向と縦方向です。
Flexboxの項目が並ぶ主軸の向きを決めるプロパティ。インライン軸・ブロック軸と、その逆向きを切り替えて比べられます。
.element flex-direction: row;
値のパターン
row | columnrowはインライン軸、columnはブロック軸を主軸にします。横書きでは横方向と縦方向です。
*-reverserow-reverseとcolumn-reverseは、軸そのものは変えず、主軸の始点と終点を入れ替えます。
display: flexflex-directionはdisplay: flexまたはinline-flexの要素に指定し、直接の子要素の並びを変えます。
初期値はrowです。インライン軸・ブロック軸と通常・逆向きの組み合わせで、主軸を4通りに切り替えます。
rowインライン軸に沿って並べる初期値row-reverseインライン軸を逆向きにするrow・反転columnブロック軸に沿って並べるcolumncolumn-reverseブロック軸を逆向きにするcolumn・反転initial初期値のrowへ戻すグローバルinherit親要素の指定値を受け継ぐグローバル横書きの親要素でrowを使うと、直接の子要素を文章の進むインライン軸に沿って横へ並べられます。
.cards { display: flex; flex-direction: row; }横書きの親要素でcolumnを指定すると、ラベルや入力欄をブロック軸に沿って上から下へ積み重ねられます。
.form { display: flex; flex-direction: column; }横書きでは、メディアクエリーでrowからcolumnへ切り替えると、狭い画面だけ縦並びにできます。
@media (max-width: 48rem) { .nav { flex-direction: column; } }ポイント
row-reverseとcolumn-reverseは表示上の並びを反転しますが、HTMLのDOM順や読み上げ順、キーボードのフォーカス順は変えません。内容の順序に意味がある場合は、見た目だけを反転させずHTMLを正しい順序で書きます。rowはインライン軸、columnはブロック軸に対応するため、見た目の方向はwriting-modeやdirectionの影響を受けます。flex-directionの初期値はrowで、フレックスコンテナーに適用され、子要素へ継承されません。
flex-direction と一緒に使われるプロパティや、詳しい外部リファレンスをまとめました。