flex

Якщо треба виставляи горизонатльно/вертикально - то у батьківському тегу назначаємо flex - і тоді усі підпорядковані будуть ьвравнюваться\ставитись за налаштуванням. flex може:

змінювати ширину і висоту його дітей;

змінювати напрямок розташування його дітей (вирівнювання в колонку або рядок);

змінювати порядок відображення елементів та відстань між ними;

розширювати елементи, щоб оптимально заповнити доступний простір;

стискати елементи, щоб запобігти переповненню.

властивості флекс-контейнер

Надання тегу властивості флекс

flex - блоковий

inline-flex - рядково-блоковий

.wrap{
display: flex;
}

justify-content

центрування:

flex-start — елементи притискаються до точки main-start головної осі. Це значення за замовчуванням.

flex-end — елементи притискаються до точки main-end головної осі.

center — елементи центруються на осі.

space-between — елементи рівномірно розподіляються на головній осі. Перший елемент встановлюється на початок осі, а останній на кінець.

space-around — елементи розподіляються рівномірно, але лівий та правий елементи розташовані на відстані від рамок контейнера на половину проміжку між іншими елементами.

space-evenly — елементи розподіляються так, що відстань між елементами та від крайніх елементів до меж контейнера однакова.

justify-content: center;

flex-wrap

Переніс букв або єлементів. Дозволяє перетворити однорядковий контейнер на багаторядковий. Елементи будуть додаватися в рядок, доки в ньому буде місце, після чого буде автоматично створено ще один рядок.

nowrap — усі елементи будуть на одному рядку. Це значення за замовчуванням.

wrap — дозволяє елементам перестрибувати на інші рядки, які за замовчуванням розташовуються зверху вниз (уздовж cross axis).

wrap-reverse — дозволяє елементам перестрибувати на інші рядки, які розташовуються знизу вгору (уздовж cross axis).

flex-wrap: wrap;

align-content

Керує вирівнюванням усіх рядків багаторядкового контейнера уздовж cross axis, якщо є вільне місце. Аналогічно тому, як align-items вирівнює елементи в кожному рядку. Ця властивість не діє, коли є лише один рядок елементів або в контейнері немає вільного місця за вертикаллю (явно не задана висота більше, ніж контент).

stretch — рядки рівномірно розтягуються, щоб зайняти все місце. Значення за замовчуванням.

flex-start — рядки притискаються до старту cross axis.

flex-end — рядки притискаються до кінця cross axis.

center — рядки центруються на осі cross axis.

align-content: center;

gap

Указує відстань між єлементами флекс-конетнтк тільки по горизонталі

gap: 4px;

по горизонталі і вертикалі

gap: 4px 5px;

align-items

керує розташуванням елементів вздовж поперечної осі

stretch — елементи розтягуються по всій довжині осі cross axis. Це значення за замовчуванням.

flex-start — елементи притискаються до точки cross start.

flex-end — елементи притискаються до точки cross end.

center — елементи центруються по осі cross axis.

baseline — елементи вирівнюються по базовій лінії їхнього текстового вмісту.

align-items: center;

flex-direction

система розташування елементів в одному напрямку: горизонтально чи вертикально. Властивість flex-direction задає напрямок головної осі, а отже визначає напрямок елементів у контейнері.

row — вісь починається зліва й закінчується праворуч. Це значення за замовчуванням.

row-reverse — вісь починається праворуч й закінчується ліворуч.

column — головна вісь стає вертикально, початок зверху та кінець знизу.

column-reverse — головна вісь розташовується вертикально, початок знизу, кінець зверху.

властивості флекс-єлементів

flex-basis

визначає початковий розмір flex-елемента у flex-контейнері. Для flex-елементів ця властивість має таку саму функцію, що і властивість width.

flex-basis: auto | значення

flex-grow

Визначає здатність елемента займати більше місця (рости), ніж початковий розмір. Значення визначається як пропорція (частка) вільного місця в контейнері.

flex-grow: 0; //0 - утискаються, 1-розтягуются...можна 1000 - то це буде коєфіцієнт відносто того у кого меньше. Або 0.5

flex-shrink

На противагу властивості flex-grow, flex-shrink визначає здатність flex-елемента займати менше місця (стискатися), ніж його початковий розмір, тобто впливає на фінальний розмір елемента.

flex-shrink: 1; //1 - за замовчуванням дозволено утискатись, 0-розтягуются...можна 1000 - то це буде коєфіцієнт відносто того у кого меньше.

order

Для сортування / порядку / вага єлементу. Сортування від меньшого до більшого. Можна і мінусові значення.

order: 0; //0 - за замовчуванням як у html прописано.

Іньше

calc

calc