Пусть у нас есть три флекс-блока, расположенных
внутри родителя в ряд. Каждому блоку-потомку
задана ширина в 100px
, а их родителю
- 300px
:
Давайте добавим больше блоков так, чтобы суммарная ширина этих блоков-потомков была больше, чем ширина их родителя. В этом случае вы увидите неожиданный эффект - ширина блоков уменьшится так, чтобы они все вместились в их родителя, ни смотря на то, что блокам-потомкам явно указана ширина:
Повторите по образцу пример из теоретической части.
Ширина родителя в процентах
Пусть у нас теперь есть пять флекс-элементов,
расположенных в ряд. Давайте родителю ширину
зададим в процентах, а всем теперь потомкам
поставим ширину в 100px
.
Откройте расположенный ниже пример и уменьшите
окно браузера так, чтобы элементы перестали
помещаться в родителя. Для этого окно нужно
сжать менее 500px
, так у нас 5
элементов каждый по 100px
. Как вы
уже знаете, при таком сжатии браузер принудительно
уменьшит ширину элементов менее 100px
так, чтобы они поместились в родителя. Итак,
вот пример:
Повторите по образцу пример из теоретической части.
Разная ширина потомкам
Давайте теперь всем потомкам поставим ширину
100px
, а второму потомку - в полтора
раза больше, то есть 150px
. В таком
случае при уменьшении окна браузера все элементы
будут уменьшаться менее заданной ширины,
однако пропорции будут сохранятся - второй
элемент будет в 1.5
раза больше остальных.
И только если сжать окно очень-очень сильно,
так, чтобы уже совсем не было места, то отличие
второго элемента от остальных исчезнет:
Повторите по образцу пример из теоретической части.
Жадность элементам
Давайте теперь посмотрим влияние жадности.
Уберем всем потомкам ширину и поставим им
потомкам flex-grow
в значение 1
,
а второму потомку - в значение 3
.
В результате получится, что второй блок будет
в 3
раза больше остальных.
Однако, если сжать окно достаточно сильно,
то второй блок уже не будет больше остальных
в 3
раза - при сильном сжатии разница
стирается. Убедитесь в этом сами, поигравшись
с приведенным ниже примером, расширяя и сужая
окно брузера:
Повторите по образцу пример из теоретической части.