CSS
 Computer >> コンピューター >  >> プログラミング >> CSS

CSSのflex-wrapプロパティでフレックスアイテムの折り返しを指定する方法

flex-wrapプロパティとは

CSSのflex-wrapプロパティを使用すると、フレックスコンテナ内のフレックスアイテムを折り返す(ラップする)かどうかを指定できます。デフォルト設定では、フレックスアイテムはコンテナの幅に関わらず1行に並べられますが、このプロパティを活用することで、スペースが不足した場合に複数行へ自動的に折り返すレイアウトを作成できます。

flex-wrapで指定できる主な値

  • nowrap(初期値):アイテムは折り返されず、すべて1行に並びます。
  • wrap:コンテナの幅が足りない場合、アイテムが次の行へ折り返されます。
  • wrap-reverse:wrapと同様に折り返しますが、行の並び順が逆になります。

実装例

以下のコードを実行して、flex-wrapプロパティの実際の動作を確認してみましょう。この例では、オレンジ色のフレックスコンテナの中に9つのアイテムを配置し、flex-wrap: wrap; を指定しています。

<!DOCTYPE html>
<html>
   <head>
      <style>
         .mycontainer {
            display: flex;
            background-color: orange;
            flex-wrap: wrap;
         }
         .mycontainer > div {
            background-color: white;
            text-align: center;
            line-height: 40px;
            font-size: 25px;
            width: 100px;
            margin: 5px;
         }
      </style>
   </head>
   <body>
      <h1>Quiz</h1>
      <div class = "mycontainer">
         <div>Q1</div>
         <div>Q2</div>
         <div>Q3</div>
         <div>Q4</div>
         <div>Q5</div>
         <div>Q6</div>
         <div>Q7</div>
         <div>Q8</div>
         <div>Q9</div>
      </div>
   </body>
</html>

動作のポイント

各アイテムの幅が100px+マージン10pxのため、コンテナの幅が狭くなると、収まりきらないアイテムが自動的に次の行へ移動します。flex-wrap: nowrap; に変更して比較すると、違いがひと目で分かります。

まとめ

flex-wrapプロパティを使いこなすことで、画面サイズに応じて柔軟に折り返されるレスポンシブなレイアウトを簡単に実現できます。カード型の一覧表示やタグリストなど、さまざまな場面で活用できる重要なプロパティなので、ぜひ覚えておきましょう。

  1. CSSのflex-directionでフレックスアイテムを水平方向に配置する方法

    CSSでフレックスアイテムを水平方向に配置するには、flex-directionプロパティにrow値を指定します。flex-directionは、フレックスコンテナ内のアイテムが並ぶ方向(主軸の方向)を決定する重要なプロパティです。 flex-direction: row の基本 rowはflex-directionのデフォルト値で、アイテムを左から右へ横一列に並べます。なお、文書の書字方向が右から左(RTL)の場合は、逆に右から左へ並びます。 flex-directionで使える主な値 row:アイテムを水平方向(左から右)に配置 row-reverse:アイテムを水平方向(右から左)に配

  2. CSSでフレックスラインをコンテナの先頭に表示する方法(align-content: flex-start)

    CSSのalign-contentプロパティにflex-startという値を指定すると、フレックスコンテナ内の複数のフレックスライン(行)をコンテナの先頭側に寄せて配置できます。 align-content: flex-startの基本 align-contentプロパティは、交差軸(cross axis)方向におけるフレックスライン全体の配置を制御するプロパティです。flex-startを指定すると、すべてのフレックスラインが交差軸の開始位置、つまりコンテナの先頭にまとめられて表示されます。 注意点として、align-contentが機能するのはflex-wrap: wrap;などで折り