Caution

お使いのブラウザはJavaScriptが実行できない状態になっております。
当サイトはWebプログラミングの情報サイトの為、
JavaScriptが実行できない環境では正しいコンテンツが提供出来ません。
JavaScriptが実行可能な状態でご閲覧頂くようお願い申し上げます。

CSSプロパティ辞典

order

フレックスアイテムの視覚的な表示順序を指定します。DOMの順序を変えずに、見た目の並び順だけを変更できます。

サンプルコード
/* 初期値(DOMの順序通り) */
.item { order: 0;}

/* 先頭に移動 */
.item-first { order: -1;}

/* 末尾に移動 */
.item-last { order: 1;}

/* 任意の順序を指定 */
.item-a { order: 3;}
.item-b { order: 1;}
.item-c { order: 2;}
指定可能な値一覧
概要
<integer>整数値を指定します。初期値は『0』です。負の値も指定可能です。値が小さいほど先頭に配置されます。
仕様情報
項目内容
初期値0
適用対象フレックスアイテム
継承しない
アニメーション可能(integer として補間)
対応ブラウザ
Chrome Chrome
29 以降
28
27
26
25
24
23
22
21
↑ prefix『-webkit-』が必要
20 以前 ×
Firefox Firefox
20 以降
19 以前 ×
Safari Safari
9 以降
8
7
↑ prefix『-webkit-』が必要
6 以前 ×
Edge Edge
12 以降
全バージョンで対応しています
IE IE
11
10
prefix『-ms-』が必要
9 ×
8 ×
7 ×
6 ×
Opera Opera
12.1 以降
11 以前 ×
iOS Safari iOS Safari
9 以降
8
7
↑ prefix『-webkit-』が必要
6 以前 ×
Android Android Browser
4.4 以降
3 以前 ×
Chrome Android Chrome Android
最新版
デスクトップ版と同等の対応です
Firefox Android Firefox Android
最新版
デスクトップ版と同等の対応です

※ バージョン情報は MDN / Can I Use に基づいています。

概要

『order』はフレックスアイテムに指定するプロパティで、DOMの順序を変えずに視覚的な表示順序だけを変更できます。すべてのアイテムの初期値は『0』で、値が小さいほど先頭に、大きいほど末尾に配置されます。同じ値のアイテムはDOM順で並びます。

並び順のルール

DOM順(HTML上の順序) A (order:2) B (order:-1) C (order:0) D (order:2) order適用後 表示順(実際の並び) B (-1) C (0) A (2) D (2)

『order』の値が小さいものから順に配置されます。同じ値を持つアイテム同士はDOMの順序に従います。

/* DOM順: A → B → C → D */
.item-a { order: 2;}   /* 3番目 */
.item-b { order: -1;}  /* 1番目(最小値) */
.item-c { order: 0;}   /* 2番目 */
.item-d { order: 2;}   /* 4番目(Aと同じ値だがDOM順でAの後) */
/* 表示順: B → C → A → D */
パターン1: レスポンシブでの順序変更

PC — 横並び(DOM順通り) Sidebar Main Content SP — 縦並び(メインが先頭に移動) Main Content (order: -1) Sidebar

/* PCでは通常の順序、SPではメインコンテンツを先頭に */
.sidebar { order: 0;}
.main-content { order: 0;}

@media (max-width: 768px) {
    .main-content { order: -1;}  /* メインを先頭に移動 */
}
パターン2: 特定のアイテムを末尾に移動
/* 「もっと見る」ボタンを常に最後に配置 */
.card { order: 0;}
.more-button { order: 999;}
アクセシビリティに関する注意

『order』はCSSによる視覚的な表示順序を変えるだけで、HTMLのDOM順序は変わりません。スクリーンリーダーやキーボードのTabキーによるナビゲーションはDOM順序に従うため、見た目の並び順と操作順序にずれが生じます。

装飾的な並び替えであれば大きな問題にはなりませんが、ナビゲーションやフォームなど操作を伴う要素の順序を変える場合は、できるだけHTML側の順序を変更して対応しましょう。

『flex-direction: reverse』との違い

全体の並びを逆にしたい場合は『flex-direction: row-reverse』や『column-reverse』を使います。『order』は個々のアイテムの順序を個別に変えたい場合に使います。

関連プロパティ
プロパティ概要
flex-directionアイテムの並ぶ方向を指定します。全体の反転には『row-reverse』や『column-reverse』を使います。

記事の間違いや著作権の侵害等ございましたらお手数ですがまでご連絡頂ければ幸いです。