display: flex;
を適用したflexコンテナーの中のflexアイテムの並び順は、通常は設定された方向にhtmlの記述が早い順に並びます。
flexアイテムにorder
で並び順を設定すると、htmlの記述順を問わずにorder
で指定した並び順で表示することができます。
orderを設定してflexアイテムの並び順を変更してみる
プレビュー
1
2
3
4
通常は1→2→3→4という順番で表示されるはずが、4にorder: -1;
を設定しているため、4が一番左に表示されます。
解説
order
の初期値は0で、負→0→正の数順に表示されます。
↑の例では「4」のブロックにだけ「-1」を設定しているので、「4」が一番左に配置されています。
HTML例
<div class="flex-box"> <div class="flex-item">1</div> <div class="flex-item">2</div> <div class="flex-item">3</div> <div class="flex-item">4</div> </div>
CSS例
.flex-box{display: flex;} .flex-item{ width: 100px; height: 100px; display: flex; margin: 10px; align-items: center; justify-content: center; background: #eee; color: #000; font-size: .8em; } .flex-item:nth-child(4){ order: -1; }
まとめ
order
プロパティは「PCではこの順番、スマホではこの順番」などのように、flexアイテムの順序を入れ替えて表示したい時などによく使います。
便利なプロパティなのでぜひ活用していきたいですね。