Flexbox в CSS & HTML (Урок) – разработване на отзивчиви оформления.

Flexbox: Контролиране на намаляването в гъвкавата посока с flex-shrink

Всички видеоклипове от урока Flexbox в CSS и HTML (Урок) – разработка на реагиращи се макети

В този учебник ще разгледаме модификатора на СSS свойството flex-shrink. Тази опция е част от модела на Flexbox, който ви позволява да създавате гъвкави макети, които се приспособяват към различни екрани. След като в последното видео разгледахме flex-grow, който контролира как елементите в Flex контейнера могат да растат, този път става въпрос за стесняването на елементите, когато мястото в контейнера е по-малко от предварително определената flex-basis. В тази публикация ще научите как да ограничите или приспособите съкращаването на Flexbox елементите чрез flex-shrink.

Най-важните заключения

  • flex-shrink определя колко елемент може да се смали, когато няма достатъчно място.
  • Стандартната стойност за flex-shrink е 1, което означава, че елемент може да заеме място, в зависимост от налично място и другите елементи в контейнера.
  • flex-shrink може да се използва, за да се дефинира определено съотношение за смачкването между множество елементи.

Стъпково ръководство

По-долу ще ти обясня стъпките, за да използваш flex-shrink оптимално. Ще описа всеки стъпка с променливи снимки, които по-късно можеш да заместиш със снимките от видеото.

Първо ще видиш основно приложение на Flexbox в CSS. Имаш три елемента с flex-basis от 100 пиксела. Ако има достатъчно място във Flex контейнера, всичко ще остане както е планирано.

Flexbox: Контролиране на намаляването в гъвкава посока с flex-shrink

След това ще намалим височината на контейнера до 200 пиксела. В този случай мястото, което се изисква, е по-голямо от височината на контейнера. Елементите все още имат flex-basis от 100 пиксела и следователно не могат да се смалят, защото сме задали flex-shrink на 0.

Flexbox: Контролиране на намаляването в гъвкава посока с flex-shrink

За да активираш механизма за смачкване, промени стойността на flex-shrink. Задай я на 1 за елемента nav. Така информираш CSS, че елементът nav трябва максимално да се смали.

Flexbox: Контролиране на по-малките размери в гъвкава посока с помощта на flex-shrink

Сега запази промените и ще видиш, че елементът nav се смалява пропорционално, докато достигне минималната височина, зададена от съдържанието.

Flexbox: Контролирайте намаляването във флекс посока с flex-shrink

Ако искаш всички елементи да се смачкат равномерно, задай flex-shrink на всички елементи на 1. Когато контейнерът стане по-малък от необходимата площ, всички елементи се смачкват съответно.

Flexbox: Контролиране на намаляването в посока на гъвкавост с flex-shrink

За да покажеш как различните стойности на flex-shrink влияят върху макета, избери съотношение като 1:1:2. В този случай основният регион (main) получава най-голямото сведене, докато другите елементи получават по-малки.

Flexbox: Контролирайте намаляването във Flex посока с flex-shrink

Това означава, че основният елемент ще заеме повече пространство или ще се нуждае от по-малко пространство от останалите два елемента при липса на място. Въпреки това, ако желаеш опростена настройка на макета, можеш да зададеш flex-shrink на всички елементи с еднаква стойност.

Flexbox: Контролиране на умалението в гъвкаво направление с flex-shrink

Накрая, можеш да комбинираш стойностите за flex-grow, flex-shrink и flex-basis, което ти дава по-голяма гъвкавост при оформянето на макета в CSS. Винаги се уверявай, че ги приспособяваш към изискванията на дизайна.

Flexbox: Контролиране на намаляването в гъвкав посока с flex-shrink

Резюме

В този урок научихте как да използвате flex-shrink в CSS, за да управлявате промяната в размера на елементите във Flexbox. Научихте различни начини за дефиниране на смачкването и как то влияе върху макета.

Често задавани въпроси

Как работи flex-shrink?flex-shrink определя колко елемент може да се смали, когато наличното място е по-малко от flex-базата.

Каква е стандартната стойност на flex-shrink?Стандартната стойност на flex-shrink е 1, което означава, че всички елементи се смаляват равномерно.

Как да задам flex-shrink за няколко елемента?Като посочиш същата стойност на flex-shrink за всички елементи, смащането се разпределя равномерно.

Мога ли да използвам flex-shrink в комбинация с flex-grow?Да, flex-shrink, flex-grow и flex-basis могат да се използват заедно, за да се постигне гъвкав макет.

Какво се случва, когато flex-shrink е настроен на 0?Когато flex-shrink е настроен на 0, съответните елементи не се смаляват, дори когато контейнерът е по-малък от сумата на flex-базите им.