
前回の記事で、Flexboxを使って要素を横に並べたり、中央に寄せたりする方法を学びましたね。display: flex;
、justify-content
、align-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を基盤としていますので、ぜひマスターして、表現の幅を広げてください!