CSSにおけるフレックスブロックの順序

次のような一列に並んだブロックがあるとします:

html<div class="parent">
  <div class="child">1</div>
  <div class="child">2</div>
  <div class="child">3</div>
  <div class="child">4</div>
  <div class="child">5</div>
</div>
css.parent {
  display: flex;
  flex-direction: row;
  justify-content: center;
  align-items: center;
  width: 300px;
  height: 200px;
  border: 1px solid red;
}
.child {
  width: 50px;
  height: 50px;
  border: 1px solid green;
}

Результат:

HTMLコード内の順序を変えずに、画面上での表示順序を変更してみましょう。

このために、orderプロパティが存在します。このプロパティは特定の要素の順序を次のルールで設定します:値が大きい要素ほど軸の終端に近く、値が小さい要素ほど軸の始端に近くなります。

プロパティの値は正の数または負の数を取ることができます。デフォルトではすべての要素が互いに順番に続くため、これはそれらのorderがゼロであることを意味します。

要素の順序を変更してみましょう。 そのために、2番目の要素に追加クラスelemを設定し、このクラスに対してorderプロパティを値1に設定します:

css.elem {
  order: 1;
  border: 1px solid red;
}

すべての要素はデフォルトで順序0を持ち、2番目の要素は他の要素よりも順序が大きくなるため、それは他の要素の後に配置されます:

次に、負の値-1を設定してみましょう:

css.elem {
  order: -1;
  border: 1px solid red;
}

この場合、ブロックは軸の始端に移動します:

Задание 1

このプロパティの動作を、さまざまな軸の方向で自分で試してみてください。