Порядок flex блоков через CSS

Пусть у нас даны следующие блоки, выстроенные в ряд:

<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> .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 у них нулевой.

Давайте поменяем порядок наших элементов. Для этого установим второму элементу дополнительный класс elem и для этого класса установим свойство order в значение 1:

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

Так как все элементы по умолчанию будут иметь порядок 0, а наш второй элемент будет иметь порядок больше, чем остальные, то он будет располагаться позже их:

Давайте теперь зададим отрицательное значение -1:

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

В этом случае наш блок переместиться к началу оси:

Самостоятельно опробуйте работу данного свойства для различных направлений оси.