Свойство flex-wrap

Свойство flex-wrap задава многоредово подреждане на блокове по главната ос. Прилага се към родителския елемент за flex блокове. Влиза в свойството-съкращение flex-flow.

Синтаксис

cssселектор {
  flex-wrap: nowrap | wrap | wrap-reverse;
}

Стойности

Стойност Описание
nowrap Едноредов режим - блоковете се подреждат в един ред.
wrap Блоковете се подреждат в няколко реда, ако не се събират в един.
wrap-reverse Същото като wrap, но блоковете се подреждат в обратен ред (първо последния, после първия).

Стойност по подразбиране: nowrap.

Пример . Стойност wrap

Сега блоковете не се събират в своя контейнер и ще се подредят в няколко реда:

html<div id="parent">
  <div>1</div>
  <div>2</div>
  <div>3</div>
  <div>4</div>
  <div>5</div>
  <div>6</div>
  <div>7</div>
  <div>8</div>
  <div>9</div>
</div>
css#parent {
  display: flex;
  flex-wrap: wrap;
  flex-direction: row;
  justify-content: space-between;
  border: 1px solid #696989;
  height: 200px;
  width: 330px;
  margin: auto;
}
#parent > div {
  width: 100px;
  height: 50px;
  border: 1px solid #696989;
}

Результат:

Пример . Стойност wrap-reverse

А сега редът на подреждане ще се промени на обратен (гледайте цифрите вътре в блоковете):

html<div id="parent">
  <div>1</div>
  <div>2</div>
  <div>3</div>
  <div>4</div>
  <div>5</div>
  <div>6</div>
  <div>7</div>
  <div>8</div>
  <div>9</div>
</div>
css#parent {
  display: flex;
  flex-wrap: wrap-reverse;
  flex-direction: row;
  justify-content: space-between;
  border: 1px solid #696989;
  height: 200px;
  width: 330px;
  margin: auto;
}
#parent > div {
  width: 100px;
  height: 50px;
  border: 1px solid #696989;
}

Результат:

Пример . Стойност nowrap

Сега блоковете ще се подреждат в едноредов режим (така е по подразбиране). При това стойността на ширината width за блоковете ще бъде игнорирана, ако тя пречи на блоковете да се съберат в родителя. Обърнете внимание, че блоковете са се събрали в родителя, но реалната им ширина не е 100px, както им е зададено, а по-малка:

html<div id="parent">
  <div>1</div>
  <div>2</div>
  <div>3</div>
  <div>4</div>
  <div>5</div>
  <div>6</div>
  <div>7</div>
  <div>8</div>
  <div>9</div>
</div>
css#parent {
  display: flex;
  flex-wrap: nowrap;
  flex-direction: row;
  justify-content: space-between;
  border: 1px solid #696989;
  height: 200px;
  width: 330px;
  margin: auto;
}
#parent > div {
  width: 100px;
  height: 50px;
  border: 1px solid #696989;
}

Результат:

Пример . Стойност nowrap

Обаче, ако блоковете се събират при зададената им ширина - то свойството width няма да бъде игнорирано. Нека намалим броя на блоковете така, че всички да се съберат:

html<div id="parent">
  <div>1</div>
  <div>2</div>
  <div>3</div>
</div>
css#parent {
  display: flex;
  flex-wrap: nowrap;
  flex-direction: row;
  justify-content: space-between;
  border: 1px solid #696989;
  height: 200px;
  width: 330px;
  margin: auto;
}
#parent > div {
  width: 100px;
  height: 50px;
  border: 1px solid #696989;
}

Результат:

Вижте също

  • свойство flex-direction,
    което задава посока на осите на flex блоковете
  • свойство justify-content,
    което задава подравняване по главната ос
  • свойство align-items,
    което задава подравняване по напречната ос
  • свойство flex-flow,
    съкращение за flex-direction и flex-wrap
  • свойство order,
    което задава ред на flex блоковете
  • свойство align-self,
    което задава подравняване на един блок
  • свойство flex-basis,
    което задава размер на конкретен flex блок
  • свойство flex-grow,
    което задава "алчност" на flex блоковете
  • свойство flex-shrink,
    което задава свиваемост на flex блоковете
  • свойство flex,
    съкращение за flex-grow, flex-shrink и flex-basis