flex-wrap プロパティ

flex-wrap プロパティは、主軸に沿ったフレックスアイテムの複数行配置を指定します。 フレックスアイテムの親要素に適用されます。省略形プロパティである flex-flow の一部です。

構文

cssセレクタ {
  flex-wrap: nowrap | wrap | wrap-reverse;
}

値

値 説明
nowrap シングルラインモード - アイテムは1行に配置されます。
wrap アイテムが1行に収まらない場合、複数行に配置されます。
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
  • 主軸に沿った配置を指定するプロパティ justify-content
  • 交差軸に沿った配置を指定するプロパティ align-items
  • flex-direction と flex-wrap の省略形であるプロパティ flex-flow
  • フレックスアイテムの順序を指定するプロパティ order
  • 単一アイテムの配置を指定するプロパティ align-self
  • フレックスアイテムの初期サイズを指定するプロパティ flex-basis
  • フレックスアイテムの伸長率を指定するプロパティ flex-grow
  • フレックスアイテムの縮小率を指定するプロパティ flex-shrink
  • flex-grow, flex-shrink, flex-basis の省略形であるプロパティ flex