Spec-Zone.ru › CSS

CSS-свойство `flex-flow`

Базовый уровень Широко доступно

Эта возможность хорошо зарекомендовала себя и работает на множестве устройств и в разных версиях браузеров. Она доступна во всех браузерах с сентября 2015 года.

Сокращённое свойство flex-flow CSS задаёт направление flex-контейнера, а также поведение переноса его элементов.

Попробуйте

flex-flow: row wrap;
flex-flow: row-reverse nowrap;
flex-flow: row wrap balance;
flex-flow: column wrap-reverse;
flex-flow: column wrap;
flex-flow: column balance wrap;
<section class="default-example" id="default-example">
  <div class="transition-all" id="example-element">
    <div>Item One</div>
    <div>Item Two</div>
    <div>Item Three</div>
    <div>Item Four</div>
    <div>Item Five</div>
    <div>Item Six</div>
    <div>Item Seven</div>
  </div>
</section>
#example-element {
  border: 1px solid #c5c5c5;
  width: 80%;
  max-height: 300px;
  display: flex;
}

#example-element > div {
  background-color: rgb(0 0 255 / 0.2);
  border: 3px solid blue;
  width: 60px;
  margin: 5px 10px;
}

Составные свойства

Это сокращённое свойство для следующих свойств CSS:

  • flex-direction
  • flex-wrap

Синтаксис

/* flex-flow: <'flex-direction'> */
flex-flow: row;
flex-flow: row-reverse;
flex-flow: column;
flex-flow: column-reverse;

/* flex-flow: <'flex-wrap'> */
flex-flow: nowrap;
flex-flow: wrap;
flex-flow: wrap-reverse;
flex-flow: wrap balance;
flex-flow: balance wrap-reverse;

/* flex-flow: <'flex-direction'> and <'flex-wrap'> */
flex-flow: row nowrap;
flex-flow: column wrap;
flex-flow: column-reverse wrap-reverse;
flex-flow: row-reverse balance wrap

/* Global values */
flex-flow: inherit;
flex-flow: initial;
flex-flow: revert;
flex-flow: revert-layer;
flex-flow: unset;

Значения

Это свойство задаётся списком ключевых слов, разделённых пробелами, следующих типов:

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

Описание

Сокращённое свойство flex-flow задаёт свойства flex-direction и flex-wrap, определяя направление flex-контейнера и поведение переноса его элементов. Оно также может задавать балансировку flex-элементов при разрешённом переносе.

Например, column-reverse wrap задаёт главную ось в направлении блока с обратными началом и концом главной оси. При этом flex-элементы могут переноситься, создавая при необходимости новые строки.

.container {
  flex-flow: column-reverse wrap;
}

Чтобы равномерно распределить flex-элементы по каждой flex-строке, можно добавить ключевое слово flex-wrap balance к wrap:

.container {
  flex-flow: column-reverse wrap balance;
}

Формальное определение

Исходное значение как у каждого из свойств, входящих в сокращённое свойство:
  • flex-direction
  • flex-wrap
Применяется к flex-контейнерам
Наследуется нет
Вычисленное значение как у каждого из свойств, входящих в сокращённое свойство:
  • flex-direction
  • flex-wrap
Тип анимации как у каждого из свойств, входящих в сокращённое свойство:
  • flex-direction
  • flex-wrap

Формальный синтаксис

flex-flow = 
  <'flex-direction'> ||
  <'flex-wrap'>

Примеры

Основное использование

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

HTML

Добавим список слов в алфавитном порядке:

<ul>
  <li>Alphabet</li>
  <li>Banana</li>
  <li>Crayons</li>
  <li>Dinosaurs</li>
  <li>Eggplant</li>
  <li>Foundation</li>
  <li>Ghosts</li>
  <li>Happy</li>
  <li>Igloo</li>
  <li>Janitors</li>
  <li>Kittens</li>
  <li>Lasso</li>
  <li>Magic 8-ball</li>
  <li>Nincompoop</li>
  <li>Orange</li>
  <li>Petunia</li>
  <li>Quality</li>
  <li>Rancid</li>
  <li>Shoelace</li>
  <li>Terydactyl</li>
  <li>Umbrella</li>
  <li>Valentine</li>
  <li>Westward</li>
  <li>Xylophone</li>
</ul>

CSS

Зададим элементу <ul> отображение flex-контейнера с помощью свойства display, определим width, добавим gap, чтобы оставить пространство между flex-элементами и flex-строками, а затем зададим свойству flex-flow перенос элементов в обратном порядке. Для краткости дополнительный CSS скрыт.

ul {
  display: flex;
  width: 31em;
  gap: 1em;

  flex-flow: row-reverse wrap-reverse;
}
ul {
  list-style: none;
  border: 1px solid;
  font-family: sans-serif;
}
li {
  font-size: 1.25rem;
  padding: 5px;
  border: 1px solid;
  background-color: lightpink;
}
li:nth-of-type(even) {
  background-color: lightgreen;
}

Результат

Спецификации

Спецификация
Модуль гибкой компоновки CSS, уровень 1
# flex-flow-property

Совместимость с браузерами

Настольные Мобильные
Chrome Edge Firefox Opera Safari Chrome Android Firefox для Android Opera Android Safari на iOS Samsung Internet WebView Android WebView на iOS
flex-flow
29
21
12
28
49
12.1
15
9
7
29
25
28
49
12.1
14
9
7
2.0
1.5
4.4
4.4
9
7
balance
150
150
Нет
134
Нет
150
Нет
101
Нет
Нет
150
Нет
column
21
12
28
15
7
25
28
14
7
1.5
4.4
7
column-reverse
21
12
28
15
7
25
28
14
7
1.5
4.4
7
nowrap
21
12
28
15
7
25
28
14
7
1.5
4.4
7
row
21
12
28
15
7
25
28
14
7
1.5
4.4
7
row-reverse
21
12
28
15
7
25
28
14
7
1.5
4.4
7
wrap
21
12
28
15
7
25
28
14
7
1.5
4.4
7
wrap-reverse
21
12
28
15
7
25
28
14
7
1.5
4.4
7

См. также

  • Основные понятия flexbox
  • Упорядочение flex-элементов

© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/CSS/Reference/Properties/flex-flow

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API