Что означает flex в css

2.23. CSS flexbox

Что означает flex в css. Смотреть фото Что означает flex в css. Смотреть картинку Что означает flex в css. Картинка про Что означает flex в css. Фото Что означает flex в css

CSS flexbox (Flexible Box Layout Module) — модуль макета гибкого контейнера — представляет собой способ компоновки элементов, в основе лежит идея оси.

Flexbox состоит из гибкого контейнера (flex container) и гибких элементов (flex items). Гибкие элементы могут выстраиваться в строку или столбик, а оставшееся свободное пространство распределяется между ними различными способами.

Модуль flexbox позволяет решать следующие задачи:

Flexbox решает специфические задачи — создание одномерных макетов, например, навигационной панели, так как flex-элементы можно размещать только по одной из осей.

Список текущих проблем модуля и кросс-браузерных решений для них вы можете прочитать в статье Philip Walton Flexbugs.

Что такое flexbox

Поддержка браузерами

1. Основные понятия

Для описания модуля Flexbox используется определенный набор терминов. Значение flex-flow и режим записи определяют соответствие этих терминов физическим направлениям: верх / право / низ / лево, осям: вертикальная / горизонтальная и размерам: ширина / высота.

Главная ось (main axis) — ось, вдоль которой выкладываются flex-элементы. Она простирается в основном измерении.

Main start и main end — линии, которые определяют начальную и конечную стороны flex-контейнера, относительно которых выкладываются flex-элементы (начиная с main start по направлению к main end).

Основной размер (main size) — ширина или высота flex-контейнера или flex-элементов, в зависимости от того, что из них находится в основном измерении, определяют основной размер flex-контейнера или flex-элемента.

Поперечная ось (cross axis) — ось, перпендикулярная главной оси. Она простирается в поперечном измерении.

Cross start и cross end — линии, которые определяют начальную и конечную стороны поперечной оси, относительно которых выкладываются flex-элементы.

Поперечный размер (cross size) — ширина или высота flex-контейнера или flex-элементов, в зависимости от того, что находится в поперечном измерении, являются их поперечным размером.

Что означает flex в css. Смотреть фото Что означает flex в css. Смотреть картинку Что означает flex в css. Картинка про Что означает flex в css. Фото Что означает flex в cssРис. 2. Режим строки и колонки

2. Flex-контейнер

Модель flexbox-разметки связана с определенным значением CSS-свойства display родительского html-элемента, содержащего внутри себя дочерние блоки. Для управления элементами с помощью этой модели нужно установить свойство display следующим образом:

После установки данных значений свойства каждый дочерний элемент автоматически становится flex-элементом, выстраиваясь в один ряд (вдоль главной оси). При этом блочные и строчные дочерние элементы ведут себя одинаково, т.е. ширина блоков равна ширине их содержимого с учетом внутренних полей и рамок элемента.

Что означает flex в css. Смотреть фото Что означает flex в css. Смотреть картинку Что означает flex в css. Картинка про Что означает flex в css. Фото Что означает flex в cssРис. 3. Выравнивание элементов в модели flexbox

Если родительский блок содержит текст или изображения без оберток, они становятся анонимными flex-элементами. Текст выравнивается по верхнему краю блока-контейнера, а высота изображения становится равной высоте блока, т.е. оно деформируется.

3. Flex-элементы

Flex-элементы — блоки, представляющие содержимое flex-контейнера в потоке. Flex-контейнер устанавливает новый контекст форматирования для своего содержимого, который обуславливает следующие особенности:

4. Порядок отображения flex-элементов и ориентация

Содержимое flex-контейнера можно разложить в любом направлении и в любом порядке (переупорядочение flex-элементов внутри контейнера влияет только на визуальный рендеринг).

4.1. Направление главной оси: flex-direction

Свойство относится к flex-контейнеру. Управляет направлением главной оси, вдоль которой укладываются flex-элементы, в соответствии с текущим режимом записи. Не наследуется.

flex-direction
Значения:
rowЗначение по умолчанию, слева направо (в rtl справа налево). Flex-элементы выкладываются в строку. Начало (main-start) и конец (main-end) направления главной оси соответствуют началу (inline-start) и концу (inline-end) оси строки (inline-axis).
row-reverseНаправление справа налево (в rtl слева направо). Flex-элементы выкладываются в строку относительно правого края контейнера (в rtl — левого).
columnНаправление сверху вниз. Flex-элементы выкладываются в колонку.
column-reverseКолонка с элементами в обратном порядке, снизу вверх.
initialУстанавливает значение свойства в значение по умолчанию.
inheritНаследует значение свойства от родительского элемента.

Что означает flex в css. Смотреть фото Что означает flex в css. Смотреть картинку Что означает flex в css. Картинка про Что означает flex в css. Фото Что означает flex в cssРис. 4. Свойство flex-direction для left-to-right языков

4.2. Управление многострочностью flex-контейнера: flex-wrap

Свойство определяет, будет ли flex-контейнер однострочным или многострочным, а также задает направление поперечной оси, определяющее направление укладки новых линий flex-контейнера.

По умолчанию flex-элементы укладываются в одну строку, вдоль главной оси. При переполнении они будут выходить за пределы ограничивающей рамки flex-контейнера. Свойство не наследуется.

flex-wrap
Значения:
nowrapЗначение по умолчанию. Flex-элементы не переносятся, а располагаются в одну линию слева направо (в rtl справа налево).
wrapFlex-элементы переносятся, располагаясь в несколько горизонтальных рядов (если не помещаются в один ряд) в направлении слева направо (в rtl справа налево).
wrap-reverseFlex-элементы переносятся на новые линии, располагаясь в обратном порядке слева-направо, при этом перенос происходит снизу вверх.
initialУстанавливает значение свойства в значение по умолчанию.
inheritНаследует значение свойства от родительского элемента.

Что означает flex в css. Смотреть фото Что означает flex в css. Смотреть картинку Что означает flex в css. Картинка про Что означает flex в css. Фото Что означает flex в cssРис. 5. Управление многострочностью с помощью свойства flex-wrap для LTR-языков

4.3. Краткая запись направления и многострочности: flex-flow

4.4. Порядок отображения flex-элементов: order

Свойство определяет порядок, в котором flex-элементы отображаются и располагаются внутри flex-контейнера. Применяется к flex-элементам. Свойство не наследуется.

Что означает flex в css. Смотреть фото Что означает flex в css. Смотреть картинку Что означает flex в css. Картинка про Что означает flex в css. Фото Что означает flex в cssРис. 6. Порядок отображения flex-элементов

5. Гибкость flex-элементов

Flex-элемент будет полностью «негибок», если его значения flex-grow и flex-shrink равны нулю, и «гибкий» в противном случае.

5.1. Задание гибких размеров одним свойством: flex

W3C рекомендует использовать сокращённую запись, так как она правильно сбрасывает любые неуказанные компоненты, чтобы подстроиться под типичное использование.

5.2. Коэффициент роста: flex-grow

Свойство определяет коэффициент роста одного flex-элемента относительно других flex-элементов в flex-контейнере при распределении положительного свободного пространства. Если сумма значений flex-grow flex-элементов в строке меньше 1, они занимают менее 100% свободного пространства. Свойство не наследуется.

5.3. Коэффициент сжатия: flex-shrink

5.4. Базовый размер: flex-basis

flex-basis
Значения:
autoЗначение по умолчанию. Элемент получает базовый размер, соответствующий размеру его содержимого (если он не задан явно).
contentОпределяет базовый размер в зависимости от содержимого flex-элемента.
длинаБазовый размер определяется так же, как для ширины и высоты. Задается в единицах длины.
initialУстанавливает значение свойства в значение по умолчанию.
inheritНаследует значение свойства от родительского элемента.

6. Выравнивание

6.1. Выравнивание по главной оси: justify-content

6.2. Выравнивание по поперечной оси: align-items и align-self

6.2.1. Align-items

Свойство выравнивает flex-элементы, в том числе и анонимные flex-элементы по поперечной оси. Не наследуется.

6.2.2. Align-self

6.3. Выравнивание строк flex-контейнера: align-content

Источник

Полное руководство по CSS Flex + опыт использования

Что означает flex в css. Смотреть фото Что означает flex в css. Смотреть картинку Что означает flex в css. Картинка про Что означает flex в css. Фото Что означает flex в css

Как и CSS Grid, Flex Box довольно сложен, потому что состоит из двух составляющих: контейнера и элементов внутри него.

Когда я начал изучать Flex, я хотел увидеть все, на что он способен. Но мне не удалось найти подробное руководство с примерами всех возможностей. Поэтому я решил самостоятельно создать диаграммы свойств Flex с «высоты птичьего полета».

Что означает flex в css. Смотреть фото Что означает flex в css. Смотреть картинку Что означает flex в css. Картинка про Что означает flex в css. Фото Что означает flex в cssЭто все, на что способен Flex.

Но… давайте рассмотрим каждую диаграмму отдельно. К концу этого руководства по Flex вы узнаете обо всех его возможностях.

CSS Flex или Flex Box

Flex — это набор правил для автоматического растягивания нескольких столбцов и строк внутри родительского контейнера.

display:flex

В отличие от многих других свойств CSS, в Flex есть основной контейнер и вложенные в него элементы. Некоторые свойства CSS-Flex относятся только к контейнеру. А другие можно применить только к элементам внутри него.

Что означает flex в css. Смотреть фото Что означает flex в css. Смотреть картинку Что означает flex в css. Картинка про Что означает flex в css. Фото Что означает flex в css

Вы можете думать о flex-элементе как о родительском контейнере со свойством display: flex. Элемент, помещенный в контейнер, называется item. Каждый контейнер имеет границы начала(flex-start) и конца гибкости(flex-end), как показано на этой диаграмме.

Горизонтальная (main) и вертикальная (cross) оси

Хотя список элементов представлен линейно, необходимо обращать внимание на строки и столбцы. По этой причине Flex включает в себя координатные оси. Горизонтальная ось называется main-axis, а вертикальная — cross-axis.

Чтобы управлять шириной содержимого контейнера и промежутками между элементами, которые растягиваются вдоль main-axis, необходимо использовать Justify-content. Для управления вертикальными изменениями элементов необходимо использовать align-items.

Если у вас есть 3 столбца и 6 элементов, Flex автоматически создаст вторую строку для размещения оставшихся элементов. Если у вас в списке более 6 элементов, будут созданы дополнительные строки.

Что означает flex в css. Смотреть фото Что означает flex в css. Смотреть картинку Что означает flex в css. Картинка про Что означает flex в css. Фото Что означает flex в css

По умолчанию, элементы Flex равномерно распределяются внутри контейнера по горизонтальной оси. Мы рассмотрим различные свойства и значения.

Что означает flex в css. Смотреть фото Что означает flex в css. Смотреть картинку Что означает flex в css. Картинка про Что означает flex в css. Фото Что означает flex в cssВы можете определять количество столбцов.

Распределение строк и столбцов внутри родительского элемента определяется свойствами CSS Flex flex-direction, flex-wrap и некоторыми другими, которые будут продемонстрированы дальше.

Что означает flex в css. Смотреть фото Что означает flex в css. Смотреть картинку Что означает flex в css. Картинка про Что означает flex в css. Фото Что означает flex в css:У нас есть произвольное n-количество элементов, расположенных в контейнере. По умолчанию элементы растягиваются слева направо. Однако направление можно изменить.

Direction

Можно задать направление движения элементов (по умолчанию слева направо).

Что означает flex в css. Смотреть фото Что означает flex в css. Смотреть картинку Что означает flex в css. Картинка про Что означает flex в css. Фото Что означает flex в css

flex-direction: row-reverse изменяет направление движения списка элементов. По умолчанию стоит значение row, что означает движение слева направо.

Что означает flex в css. Смотреть фото Что означает flex в css. Смотреть картинку Что означает flex в css. Картинка про Что означает flex в css. Фото Что означает flex в css

flex-wrap: wrap определяет перенос элементов на другую строку, когда в родительском контейнере заканчивается место.

Что означает flex в css. Смотреть фото Что означает flex в css. Смотреть картинку Что означает flex в css. Картинка про Что означает flex в css. Фото Что означает flex в css

flex-flow включает в себя flex-direction и flex-wrap, что позволяет определять их с помощью одного свойства.

flex-flow: row wrap определяет значения flex-direction как row и flex-wrap как wrap.

Что означает flex в css. Смотреть фото Что означает flex в css. Смотреть картинку Что означает flex в css. Картинка про Что означает flex в css. Фото Что означает flex в css

    flex-flow:row wrap-reverse (перенос элементов вверх)

Что означает flex в css. Смотреть фото Что означает flex в css. Смотреть картинку Что означает flex в css. Картинка про Что означает flex в css. Фото Что означает flex в css

    flex-flow:row wrap (стандартный перенос элементов); justify-content: space-between (пробел между элементами);

Что означает flex в css. Смотреть фото Что означает flex в css. Смотреть картинку Что означает flex в css. Картинка про Что означает flex в css. Фото Что означает flex в css

    flex-flow: row-reverse wrap (направление движения справа налево со стандартным переносом сверху вниз)

Что означает flex в css. Смотреть фото Что означает flex в css. Смотреть картинку Что означает flex в css. Картинка про Что означает flex в css. Фото Что означает flex в css

    flex-flow: row-reverse wrap-reverse (направление движения справа налево и обратный перенос элементов);

Что означает flex в css. Смотреть фото Что означает flex в css. Смотреть картинку Что означает flex в css. Картинка про Что означает flex в css. Фото Что означает flex в css

    flex-flow: row wrap; justify-content: space-between; (стандартный перенос и направление; расстояние между элементами)

Что означает flex в css. Смотреть фото Что означает flex в css. Смотреть картинку Что означает flex в css. Картинка про Что означает flex в css. Фото Что означает flex в css

Направление можно изменить, чтобы сделать вертикальную ось главной.

Что означает flex в css. Смотреть фото Что означает flex в css. Смотреть картинку Что означает flex в css. Картинка про Что означает flex в css. Фото Что означает flex в css

Когда мы меняем flex-direction на column, свойство flex-flow ведет себя точно так же, как и в предыдущих примерах. За исключением wrap-reverse, когда элементы переносятся снизу вверх.

Что означает flex в css. Смотреть фото Что означает flex в css. Смотреть картинку Что означает flex в css. Картинка про Что означает flex в css. Фото Что означает flex в css

justify-content

Что означает flex в css. Смотреть фото Что означает flex в css. Смотреть картинку Что означает flex в css. Картинка про Что означает flex в css. Фото Что означает flex в css

Я получил много просьб прояснить приведенный выше пример. Для этого я создал анимацию:

Что означает flex в css. Смотреть фото Что означает flex в css. Смотреть картинку Что означает flex в css. Картинка про Что означает flex в css. Фото Что означает flex в cssАнимированные возможности justify-content.

Надеюсь, эта CSS-анимация поможет лучше понять работу justify content.

Свойства следующие:flex-direction:row; justify-content: flex-start | flex-end | center | space-between | space-around | stretch | space-evenly. В этом примере мы используем только 3 элемента в строке.

Что означает flex в css. Смотреть фото Что означает flex в css. Смотреть картинку Что означает flex в css. Картинка про Что означает flex в css. Фото Что означает flex в cssТо же свойство justify-content используется для выравнивания элементов, когда flex-direction: column.

Packing Flex Lines (согласно спецификации Flex)

Что означает flex в css. Смотреть фото Что означает flex в css. Смотреть картинку Что означает flex в css. Картинка про Что означает flex в css. Фото Что означает flex в css

Я не уверен, реализовано ли это в каком-либо браузере, но когда-то это было частью спецификации CSS-flex и, вероятно, стоит упомянуть об этом для полноты картины.

В спецификации Flex это называется «Packing Flex Lines». По сути, это работает так же, как в примерах выше. Однако стоит обратить внимание, что интервал расположен между целыми группами элементов. Это полезно, когда вы хотите создать зазоры между группами.

Что означает flex в css. Смотреть фото Что означает flex в css. Смотреть картинку Что означает flex в css. Картинка про Что означает flex в css. Фото Что означает flex в cssPacking Flex Lines, но теперь с flex-direction: column

align-items

Что означает flex в css. Смотреть фото Что означает flex в css. Смотреть картинку Что означает flex в css. Картинка про Что означает flex в css. Фото Что означает flex в css

align-items контролирует выравнивание элементов по горизонтали относительно родительского контейнера.

flex-basis

Что означает flex в css. Смотреть фото Что означает flex в css. Смотреть картинку Что означает flex в css. Картинка про Что означает flex в css. Фото Что означает flex в css

flex-basis работает аналогично другому свойству CSS: min-width. Оно увеличивает размер элемента в зависимости от содержимого. Если свойство не задействуется, то используется значение по умолчанию.

flex-grow

Что означает flex в css. Смотреть фото Что означает flex в css. Смотреть картинку Что означает flex в css. Картинка про Что означает flex в css. Фото Что означает flex в css

flex-grow применяется к конкретному элементу и масштабирует его относительно суммы размеров всех других элементов в той же строке, которые автоматически корректируются в соответствии с заданным значением свойства. В примере значение flex-grow для элементов было установлено на 1, 7 и (3 и 5) в последней строке.

flex-shrink

Что означает flex в css. Смотреть фото Что означает flex в css. Смотреть картинку Что означает flex в css. Картинка про Что означает flex в css. Фото Что означает flex в css

flex-shrink — это противоположность flex-grow. В примере значение flex-shrink равно 7. При таком значении размер элемента равен 1/7 размера окружающих его элементов (размер которых автоматически скорректирован).

Что означает flex в css. Смотреть фото Что означает flex в css. Смотреть картинку Что означает flex в css. Картинка про Что означает flex в css. Фото Что означает flex в css

order

Что означает flex в css. Смотреть фото Что означает flex в css. Смотреть картинку Что означает flex в css. Картинка про Что означает flex в css. Фото Что означает flex в css

justify-items

Что означает flex в css. Смотреть фото Что означает flex в css. Смотреть картинку Что означает flex в css. Картинка про Что означает flex в css. Фото Что означает flex в css

И последнее, что нужно для тех, кто хочет использовать CSS Grid вместе с Flex Box. justify-items в CSS Grid похожи на justify-content в Flex. Свойства, описанные на приведенной выше диаграмме, не будут работать в Flex, но в значительной степени эквивалентны сетке для выравнивания содержимого ячеек.

Опыт веб-студии ITSOFT

Мы в веб-студии ITSOFT перешли на Flex в 2010 году. В основе всех наших новых проектов лежит именно эта технология. Наш опыт показал, что она позволяет создавать адаптивные и кроссбраузерные сайты с действительно красивым дизайном.

При использовании Flex нужно учитывать, что:

Flex-элементы по умолчанию ужимаются под свое содержимое; Это может пригодиться, когда есть блоки, размер которых изначально неизвестен и зависит от количества контента.

Внешние отступы flex-элементов не схлопываются и не выпадают, в отличие от блочной модели.

Схлопывание и выпадание отступов полезно, в основном, при верстке текстовых страниц, поэтому во избежание путаницы в отступах при создании сеток отсутствие такого поведения приходится очень кстати.

Flex-элементы умеют перераспределять свободное пространство вокруг себя, таким образом меняя свои размеры;

Больше не нужно вручную задавать ширину в процентах флекс-элементам, если необходимо равномерно заполнить все пространство флекс-контейнера. Браузер сам рассчитает размеры и распределит элементы по флекс-контейнеру.

Внутри одного флекс-контейнера можно менять порядок флекс-элементов, хотя в DOM-дереве порядок остается неизменным.

Бывают макеты страниц, в которых порядок следования элементов отличается на мобильной и десктопной версиях. Flex справится с задачей.

Пример: разный порядок следования логотипа и навигации в шапке в мобильной и десктопной версиях (http://elmucin.ru/).

Flex-элементу можно задать не только горизонтальные автоматические отступы, но и вертикальные; к тому же есть специальные свойства, с помощью которых очень просто выравнивать элементы внутри флекс-контейнера по горизонтали или вертикали.

Пример: кнопка всегда находится в нижней части карточки статьи (https://rabiet.ru/experts/), блок продукция (https://stomatofit.ru/#products).

Flex-элементы могут переноситься на следующую строку, если указано соответствующее свойство.

Эта особенность полезна в каталогах и различных списках, где изначально количество всех элементов неизвестно. Если их станет слишком много и предусмотрен перенос, то страница в этом случае не развалится.

Стоит отметить, что Flexbox поддерживается в Internet Explorer 10-11, хоть и с некоторыми оговорками.

Некоторые интересные фишки Flex мы реализовали на сайте oflomil.ru. На разводящей странице есть 3 столбца на всю высоту видимой области экрана. На мобильном они трансформируются в 3 строки, каждая из которых равномерно занимает место в видимой части экрана. На продуктовых страницах без единого скрипта реализована бегущая строка. Текстовые элементы расположены в ряд благодаря inline-flex. Все свободное пространство в ряду распределено между этими элементами равномерно. Наш собственный сайт также свёрстан с использованием Flex.

Что означает flex в css. Смотреть фото Что означает flex в css. Смотреть картинку Что означает flex в css. Картинка про Что означает flex в css. Фото Что означает flex в cssРеализация бегущей строки с Flex

Из недостатков можно отметить то, что Flex не хватает при верстке писем. Не во всех почтовых клиентах он работает корректно.

В скором времени большую распространённость получит технология Grid. Однако Grid не замена Flexbox. Флексы в связке с гридами помогут решать задачи, которые раньше были сложными или вовсе невозможными. К примеру, Masonry-раскладка — одна из тех вещей, которую нельзя полноценно реализовать на данный момент. После появления возможностей спецификации Grid Layout 3 уровня в браузерах, реализация такой раскладки станет возможной и к тому же простой.

Дата-центр ITSOFT — размещение и аренда серверов и стоек в двух дата-центрах в Москве. За последние годы UPTIME 100%. Размещение GPU-ферм и ASIC-майнеров, аренда GPU-серверов, лицензии связи, SSL-сертификаты, администрирование серверов и поддержка сайтов.

Источник

Как работает CSS Flexbox: наглядное введение в систему компоновки элементов на веб-странице

Авторизуйтесь

Как работает CSS Flexbox: наглядное введение в систему компоновки элементов на веб-странице

CSS Flexbox — это технология для создания сложных гибких макетов за счёт правильного размещения элементов на странице. О самой технологии пишут здесь. Мы же решили объяснить возможности CSS Flexbox с использованием гифок.

Примечание Вы читаете улучшенную версию некогда выпущенной нами статьи.

display: flex

Что означает flex в css. Смотреть фото Что означает flex в css. Смотреть картинку Что означает flex в css. Картинка про Что означает flex в css. Фото Что означает flex в css

Что означает flex в css. Смотреть фото Что означает flex в css. Смотреть картинку Что означает flex в css. Картинка про Что означает flex в css. Фото Что означает flex в css

Так у блоков появилось свойство flex-контекст, которое в дальнейшем позволит ими управлять гораздо проще, чем с использованием стандартного CSS.

flex-direction

У flex-контейнера есть две оси: главная и перпендикулярная ей.

Что означает flex в css. Смотреть фото Что означает flex в css. Смотреть картинку Что означает flex в css. Картинка про Что означает flex в css. Фото Что означает flex в css

Что означает flex в css. Смотреть фото Что означает flex в css. Смотреть картинку Что означает flex в css. Картинка про Что означает flex в css. Фото Что означает flex в css

Обратите внимание, что flex-direction: column не выравнивает блоки по оси, перпендикулярной главной. Главная ось сама меняет своё расположение, и теперь направлена сверху вниз.

Что означает flex в css. Смотреть фото Что означает flex в css. Смотреть картинку Что означает flex в css. Картинка про Что означает flex в css. Фото Что означает flex в css

justify-content

Отвечает за выравнивание элементов по главной оси:

Justify-content может принимать 5 значений:

Что означает flex в css. Смотреть фото Что означает flex в css. Смотреть картинку Что означает flex в css. Картинка про Что означает flex в css. Фото Что означает flex в css

Space-between задаёт одинаковое расстояние между блоками, но не между контейнером и блоками. Space-around также задаёт одинаковое расстояние между блоками, но теперь расстояние между контейнером и блоками равно половине расстояния между блоками.

align-items

Если justify-content работает с главной осью, то align-items работает с осью, перпендикулярной главной оси. Вернёмся к flex-direction: row и пройдёмся по командам align-items :

Что означает flex в css. Смотреть фото Что означает flex в css. Смотреть картинку Что означает flex в css. Картинка про Что означает flex в css. Фото Что означает flex в css

Что означает flex в css. Смотреть фото Что означает flex в css. Смотреть картинку Что означает flex в css. Картинка про Что означает flex в css. Фото Что означает flex в css

Чтобы получше разобраться в том, как работают оси, объединим justify-content с align-items и посмотрим, как работает выравнивание по центру для двух свойств flex-direction :

Что означает flex в css. Смотреть фото Что означает flex в css. Смотреть картинку Что означает flex в css. Картинка про Что означает flex в css. Фото Что означает flex в css

align-self

Позволяет выравнивать элементы по отдельности:

Что означает flex в css. Смотреть фото Что означает flex в css. Смотреть картинку Что означает flex в css. Картинка про Что означает flex в css. Фото Что означает flex в css

flex-basis

Отвечает за изначальный размер элементов до того, как они будут изменены другими свойствами CSS Flexbox:Что означает flex в css. Смотреть фото Что означает flex в css. Смотреть картинку Что означает flex в css. Картинка про Что означает flex в css. Фото Что означает flex в css

flex-basis влияет на размер элементов вдоль главной оси. Давайте посмотрим, что случится, если мы изменим направление главной оси:

Что означает flex в css. Смотреть фото Что означает flex в css. Смотреть картинку Что означает flex в css. Картинка про Что означает flex в css. Фото Что означает flex в css

Заметьте, что нам пришлось изменить и высоту элементов: flex-basis может определять как высоту элементов, так и их ширину в зависимости от направления оси.

flex-grow

Это свойство немного сложнее. Для начала зададим блокам одинаковую ширину в 120px:

Что означает flex в css. Смотреть фото Что означает flex в css. Смотреть картинку Что означает flex в css. Картинка про Что означает flex в css. Фото Что означает flex в css

По умолчанию значение flex-grow равно 0. Это значит, что блокам запрещено увеличиваться в размерах. Зададим flex-grow равным 1 для каждого блока:

Что означает flex в css. Смотреть фото Что означает flex в css. Смотреть картинку Что означает flex в css. Картинка про Что означает flex в css. Фото Что означает flex в css

Что означает flex в css. Смотреть фото Что означает flex в css. Смотреть картинку Что означает flex в css. Картинка про Что означает flex в css. Фото Что означает flex в css

Что означает flex в css. Смотреть фото Что означает flex в css. Смотреть картинку Что означает flex в css. Картинка про Что означает flex в css. Фото Что означает flex в css

Вначале flex-grow каждого блока равен 1, в сумме получится 6. Значит, наш контейнер разделён на 6 частей. Каждый блок будет занимать 1/6 часть доступного пространства в контейнере. Когда flex-grow третьего блока становится равным 2, контейнер делится на 7 частей: 1 + 1 + 2 + 1 + 1 + 1. Теперь третий блок занимает 2/7 пространства, остальные — по 1/7. И так далее.

flex-grow работает только для главной оси, пока мы не изменим её направление.

flex-shrink

Зададим flex-grow и flex-shrink равными 1:

Что означает flex в css. Смотреть фото Что означает flex в css. Смотреть картинку Что означает flex в css. Картинка про Что означает flex в css. Фото Что означает flex в css

Теперь поменяем значение flex-shrink для третьего блока на 0. Ему запретили сжиматься, поэтому его ширина останется равной 120px:

Что означает flex в css. Смотреть фото Что означает flex в css. Смотреть картинку Что означает flex в css. Картинка про Что означает flex в css. Фото Что означает flex в css

flex-shrink основывается на пропорциях. То есть, если у первого блока flex-shrink равен 6, а у остальных он равен 2, то, это значит, что первый блок будет сжиматься в три раза быстрее, чем остальные.

Создадим два блока:

Что означает flex в css. Смотреть фото Что означает flex в css. Смотреть картинку Что означает flex в css. Картинка про Что означает flex в css. Фото Что означает flex в css

Ещё больше возможностей свойства вы можете найти в анимированном руководстве по CSS flex​.

Дополнительно

Как с CSS Flexbox меняется размер?

Когда увеличивается первый блок, он не становится в два раза больше второго, и когда уменьшается второй, он также не становится в два раза меньше первого. Это происходит из-за того, что flex-grow и flex-shrink отвечают за темп роста и сокращения.

Немного математики

Если вы также интересуетесь CSS Grid, можете ознакомиться с нашей статьёй, где мы рассматриваем Flexbox и Grid.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *