display: flex; を使用したレイアウトを作成したとき、「flexアイテムの配置を変更したい」と思うことはありませんか?
そのようなときは order プロパティを使用しましょう。数値を指定することで簡単にflexアイテムの配置を決定できます。
この記事では order の使い方を解説します。
- orderプロパティの使いどころ
- orderプロパティの使い方
orderとは
order はflexアイテムを配置する順番を指定するプロパティです。
通常、HTMLで作成した要素は左から順番に並んでいきます。しかしorder を使用すれば、特定の要素のみを好きな場所に移動できます。
![]()
orderの使い方
order はflexアイテムに対して有効なプロパティであるため、親要素に display: flex; を、子要素に order をそれぞれ指定します。
以下がorderの基本形です。
.flexbox {
display: flex;
}
.flex-item {
order: 数値;
}初期値は0で、マイナスの値も指定できます。
order の値による要素の動き方は次の項目で詳しく解説します。
すべてのflexアイテムにorderを指定する場合
すべてのflexアイテムに order を指定する場合、要素の配置は数値が小さいものから順に配置されます。
以下が記述例です。
<div class="flexbox">
<div class="flex-item item01">①</div>
<div class="flex-item item02">②</div>
<div class="flex-item item03">③</div>
<div class="flex-item item04">④</div>
<div class="flex-item item05">⑤</div>
</div>.flexbox {
display: flex;
}
.flex-item {
width: 30%
color: #fff;
text-align: center;
}
.item01 {
background-color: red;
order: 1;
}
.item02 {
background-color: blue;
order: 2;
}
.item03 {
background-color: green;
order: 3;
}
.item04 {
background-color: black;
order: 0;
}
.item05 {
background-color: purple;
order: -1;
}![]()
order の値が小さいものから順に配置されました。今回の例では、order: -1; がもっとも小さな値であるため、-1を指定した .item05 クラス要素がもっとも左に配置されています。
一部のflexアイテムにorderを指定する場合
一部のflexアイテムのみに order を指定する場合、要素の表示順は次のようになります。
- order を持つflexアイテム( order の値がマイナスのflexアイテム)
- order を持たないflexアイテム( order の値が0のflexアイテム)
- order を持つflexアイテム( order の値がプラスのflexアイテム)
つまり、order を指定していない要素の値を0として、order の値が小さい順に要素が並んでいきます。
以下が記述例です。
<div class="flexbox">
<div class="flex-item item01">①</div>
<div class="flex-item item02">②</div>
<div class="flex-item item03">③</div>
<div class="flex-item item04">④</div>
<div class="flex-item item05">⑤</div>
</div>.flexbox {
display: flex;
}
.flex-item {
width: 30%
color: #fff;
text-align: center;
}
.item01 {
background-color: red;
order: 1;
}
.item02 {
background-color: blue;
order: 0;
}
.item03 {
background-color: green;
order: -1;
}
.item04 {
background-color: black;
}
.item05 {
background-color: purple;
}![]()
以下のような順番で表示されました。
- order の値がマイナスのflexアイテム
- order を指定していないflexアイテム
- order の値がプラスのflexアイテム
まとめ
order はflexアイテムの順番を指定するプロパティです。flexアイテムの配置を変更したい場合に有用ですので、使い方を覚えておきましょう。
orderプロパティまとめ
- flexアイテムの順番を指定するプロパティ
display: flex;と併用する
コーディング練習サイトでflexboxのorderを実際に試してみませんか