Порядок 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; }

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

Самостійно спробуйте роботу цієї властивості для різних напрямків осі.