Flexboxの力を最大限に引き出そう!

WEB制作

前回の記事で、Flexboxを使って要素を横に並べたり、中央に寄せたりする方法を学びましたね。display: flex;justify-contentalign-itemsという3つのプロパティだけでも、Webサイトのレイアウトは大きく変わることを実感したはずです。

今回は、Flexboxの「親要素(コンテナ)」と「子要素(アイテム)」それぞれに設定できる、さらに便利なプロパティを紹介します。これらを使いこなせば、Webサイトのデザインの幅がぐっと広がります。


1. 親要素(コンテナ)のプロパティをマスターする

親要素に設定することで、その中にある子要素(アイテム)全体の並べ方や折り返し方をコントロールできます。

flex-direction:並べる方向を変える

子要素を横に並べるか、縦に並べるかを指定します。デフォルトはrow(横)です。

  • row:子要素を横(左から右)に並べます。(デフォルト)
  • column:子要素を縦(上から下)に並べます。

CSS

.container {
  display: flex;
  flex-direction: column; /* 子要素を縦に並べる */
}

flex-wrap:要素の折り返しを設定する

子要素が親要素の幅を超えたときに、次の行に折り返すかどうかを指定します。

  • nowrap:折り返さない(デフォルト)
  • wrap:親要素の幅を超えたら次の行に折り返す

CSS

.container {
  display: flex;
  flex-wrap: wrap; /* 子要素を折り返す */
}

2. 子要素(アイテム)のプロパティをマスターする

子要素に直接設定することで、個々の子要素の大きさや並び順をコントロールできます。

flex-grow:余白に合わせて要素を広げる

親要素の残りの余白を、子要素にどれだけ割り当てるかを指定します。値が大きいほど、より多くの余白を受け取って広がります。

CSS

.item-1 { flex-grow: 1; } /* 余白があれば広がる */
.item-2 { flex-grow: 2; } /* アイテム1の2倍の余白を受け取って広がる */

order:子要素の並び順を変える

HTMLの記述順に関係なく、子要素の並び順を変更できます。値が小さいほど前に表示されます。

CSS

.item-a { order: 2; }
.item-b { order: 1; } /* item-aより先に表示される */

align-self:自分だけ縦方向の配置を変える

align-items(親のプロパティ)で設定した縦方向の配置を、特定の子要素だけ上書きできます。

CSS

.item-special {
  align-self: flex-start; /* このアイテムだけ上に寄せる */
}

まとめ:Flexboxはレイアウトの強力な味方!

今回紹介したFlexboxのプロパティは、Webサイトのレイアウトをより柔軟に、そして効率的に作成するための強力なツールです。

  • 親要素のプロパティで、子要素全体の並び方折り返し方を調整。
  • 子要素のプロパティで、個々の要素の広がり方並び順をコントロール。

これらのプロパティを理解し、実際にコードを書いて試してみることで、あなたのWebデザインスキルは確実に向上します。モダンなWebサイトの多くはFlexboxを基盤としていますので、ぜひマスターして、表現の幅を広げてください!

タイトルとURLをコピーしました