CSS — гнучкий макет

Спочатку назви вже не зовсім ті, що були XDD Коли ми були молодшими, вчили box, flexbox, а тепер їх вже не використовують

CSS Flexbox в 2017 році офіційно став рекомендованим стандартом W3C (W3C Recommendation). Ця специфікація пройшла через кілька років розвитку та покращень:

  • 2009 рік: найперша версія використовувала display: box
  • 2011 рік: перехідна версія використовувала display: flexbox
  • 2012 рік: сучасна версія почала використовувати display: flex
  • 2017 рік: специфікація Flexbox офіційно стала стандартом W3C

Зараз ми використовуємо найновішу та стабільну версію display: flex.

Основна вісь і поперечна вісь — основна вісь

display: flex;
flex-direction: (row|row-reverse|column|column-reverse);

pic

justify-content

display: flex;
flex-direction: row;
justify-content: (start|center|end|space-between|space-evenly|space-around);
gap: (n-px)

Це вирівнює елементи вздовж основної осі (main axis), після чого можна встановити відстань між елементами (gap).

pic

justify-content також має варіанти для вирівнювання елементів на заповненому просторі, і якщо простір заповнений, то параметр gap вже не буде працювати.

pic

flex-basis, flex-grow, flex-shrink

Ці властивості визначають, як обробляти додатковий/зменшений простір при зміні ширини контейнера flex.

flex-basis — це початкова ширина внутрішнього елемента, flex-grow — це пропорція, на яку елементи зростають, коли зовнішній контейнер збільшується.

Коли flex-grow = 0, і контейнер збільшується з 200px до 380px, елементи не будуть змінювати свій розмір.

pic

Коли flex-grow ≠ 0, елементи змінюються відповідно до заданої пропорції.

pic

На лівому малюнку, додатковий простір складає 180px (380–200), і цей простір розподіляється між елементами пропорційно 1:3. На правому малюнку, якщо ви хочете, щоб синя частина не змінювалася, встановіть її значення в 0. Звісно, якщо синя частина має значення 0, це не буде мати жодного ефекту на червону частину, навіть якщо для неї встановлено значення flex-grow.

Зворотньо, flex-shrink відповідає за зменшення простору. Тому, коли воно встановлене на 0, елементи не будуть зменшуватися. Якщо ж значення відмінне від 0, то простір зменшується відповідно до пропорції.

pic

На правому малюнку зменшення простору складає 100px (200–100), і цей простір зменшується пропорційно 1:2.

pic

Зменшення простору складає 100px → пропорція 1:2 розподіляє зменшений простір (33,33, 66,67), після чого розмір кожного елемента змінюється на (100–33,33, 100–66,67) = (66,67, 33,33).

Перекладено з: CSS — Flex layout

Leave a Reply

Your email address will not be published. Required fields are marked *