Bootstrap - Flex: 初心者向けの包括ガイド
こんにちは、ウェブ開発者の志願者さんたち!このエキサイティングな旅でBootstrapのFlexシステムのガイドをお手伝いするのはとても嬉しいです。私がコンピュータサイエンスを教えてから数年が経過していますが、Flexをマスターすることはウェブデザインのツールキットでゲームチェンジャーになることを保証できます。では、一緒にFlexの謎を解き明かしましょう!
Bootstrap Flexとは?
コードの筋肉を鍛える(比喩的に言っています!)前に、まずBootstrap Flexとは何かを理解しましょう。FlexはBootstrapの強力なレイアウトシステムで、簡単に柔軟でレスポンシブなデザインを作成することができます。まるで魔法の杖のように、ウェブ要素をあなたが望むように並べ替えることができます!
Flexの動作を有効にする
Flexを始める前に、まず有効にする必要があります。これは、暗い部屋で光を見る前にライトのスイッチをオンにするのと同じです。以下のようにやります:
<div class="d-flex">
<!-- あなたのFlexアイテムをここに配置します -->
</div>
このシンプルなd-flex
クラスは、あなたのコンテナをFlexコンテナにします。このコンテナの中のすべてのものがFlexアイテムになります。すごいですね?
方向
Flexを有効にしたら、方向について話しましょう。Flexの世界では、アイテムを水平にまたは垂直に並べることができます。本棚(垂直)とコンベアー(水平)の選択のようなものです。
<div class="d-flex flex-row">
<div>アイテム1</div>
<div>アイテム2</div>
<div>アイテム3</div>
</div>
<div class="d-flex flex-column">
<div>アイテム1</div>
<div>アイテム2</div>
<div>アイテム3</div>
</div>
この例では、flex-row
はアイテムを水平に(左から右)並べ、flex-column
はアイテムを垂直に(上から下)積み重ねます。
コンテンツの 정렬
Flexでのコンテンツの 정렬は、本棚に本を並べるのと同じです。左端、右端、中央、または均等に広げることができます。以下のようにやります:
<div class="d-flex justify-content-start">...</div>
<div class="d-flex justify-content-end">...</div>
<div class="d-flex justify-content-center">...</div>
<div class="d-flex justify-content-between">...</div>
<div class="d-flex justify-content-around">...</div>
これらのクラスは、メイン軸に沿ってFlexアイテムを異なる方法で分布させます。これらを試してみて魔法が起きるのを見てください!
アイテムの 정렬
justify-content
はメイン軸に沿って動作しますが、align-items
は交叉軸を扱います。本棚の本の高さを調整するようなものです。以下のように使います:
<div class="d-flex align-items-start">...</div>
<div class="d-flex align-items-end">...</div>
<div class="d-flex align-items-center">...</div>
<div class="d-flex align-items-baseline">...</div>
<div class="d-flex align-items-stretch">...</div>
これらのクラスは、FlexアイテムがFlexコンテナ内で垂直にどのように 정렬されるかを制御します。
アイテムの個別 정렬
時々、あるアイテムを他のアイテムと異なるように 정렬したいことがあります。それにはalign-self
が便利です:
<div class="d-flex">
<div class="align-self-start">始点</div>
<div class="align-self-center">中央</div>
<div class="align-self-end">終点</div>
</div>
これにより、個々のFlexアイテムが兄弟アイテムとは異なる 정렬を持ちます。
フィル
flex-fill
クラスは、スポンジのようにすべての利用可能なスペースを吸収します:
<div class="d-flex">
<div class="flex-fill">多くのコンテンツを持つFlexアイテム</div>
<div class="flex-fill">Flexアイテム</div>
<div class="flex-fill">Flexアイテム</div>
</div>
すべてのflex-fill
を持つアイテムは、コンテンツの量に関係なく等しい幅になります。
成長と縮小
成長と縮小のプロパティは、Flexアイテムが拡張または縮小する方法を制御します。まるでレイアウトにゴムバンドがあるようなものです:
<div class="d-flex">
<div class="flex-grow-1">成長</div>
<div>固定</div>
<div class="flex-shrink-1">縮小</div>
</div>
flex-grow-1
のアイテムは利用可能なスペースを拡張し、flex-shrink-1
のアイテムは必要に応じて縮小します。
オートマージン
Flexのオートマージンは、魔法のスペーサーのようなものです。Flexアイテムを互いから離します:
<div class="d-flex">
<div class="mr-auto">左</div>
<div>中央</div>
<div class="ml-auto">右</div>
</div>
これにより、左-中央-右のレイアウトが自動的なスペースで作成されます。
ウラップ
アイテムが一行に収まらない場合、flex-wrap
が助け舟を抛げます:
<div class="d-flex flex-wrap">
<div>アイテム1</div>
<div>アイテム2</div>
<div>アイテム3</div>
<div>アイテム4</div>
<div>アイテム5</div>
</div>
これにより、スペースが尽きたらアイテムが次の行に折り返されます。
順序
order
プロパティは、HTMLを変更することなくFlexアイテムの順序を変更する方法を提供します。まるでレイアウトのリモコンを持っているようなものです:
<div class="d-flex">
<div class="order-3">DOMでは最初だがレイアウトでは最後</div>
<div class="order-2">DOMでは2番目だがレイアウトでは2番目</div>
<div class="order-1">DOMでは3番目だがレイアウトでは最初</div>
</div>
コンテンツの 정렬
複数行のFlexアイテムがある場合、align-content
はこれらの行のスペースを制御するのに役立ちます:
<div class="d-flex flex-wrap align-content-start" style="height: 200px;">
<div>アイテム</div>
<div>アイテム</div>
...
</div>
これは、グリッドのようなレイアウトを作成するのに特に便利です。
メディアオブジェクト
最後に、実用的な例を見てみましょう - メディアオブジェクト。これはウェブデザインでよく使われるパターンで、Flexを使えば非常に簡単に作成できます:
<div class="d-flex">
<div class="flex-shrink-0">
<img src="..." alt="...">
</div>
<div class="flex-grow-1 ms-3">
これはメディアコンポーネントからのコンテンツです。これを他のコンテンツに置き換え、必要に応じて調整することができます。
</div>
</div>
これにより、左に画像、右にコンテンツを持つ柔軟なメディアオブジェクトが作成されます。
そして、ここまででBootstrapのFlexシステムの旅が終了しました!練習は完璧を生みますので、これらのプロパティを試してみることをお勧めします。すぐにプロのように柔軟でレスポンシブなレイアウトを作成できるようになるでしょう!
以下に、私たちがカバーしたすべてのFlexプロパティの表を示します:
プロパティ | 説明 | 例クラス |
---|---|---|
Flexを有効にする | コンテナをFlexコンテナにする | d-flex |
方向 | メイン軸を設定する |
flex-row , flex-column
|
コンテンツの 정렬 | メイン軸に沿ってアイテムを 정렬する |
justify-content-start , justify-content-end , justify-content-center , justify-content-between , justify-content-around
|
アイテムの 정렬 | 交叉軸に沿ってアイテムを 정렬する |
align-items-start , align-items-end , align-items-center , align-items-baseline , align-items-stretch
|
個別 정렬 | 個々のアイテムを 정렬する |
align-self-start , align-self-center , align-self-end
|
フィル | アイテムが利用可能なスペースを吸収する | flex-fill |
成長 | アイテムが拡張する | flex-grow-1 |
縮小 | アイテムが縮小する | flex-shrink-1 |
オートマージン | アイテム間にスペースを作る |
mr-auto , ml-auto
|
ウラップ | アイテムが次の行に折り返す | flex-wrap |
順序 | アイテムの順序を変更する |
order-1 , order-2 , etc. |
コンテンツの 정렬 | Flex行を 정렬する |
align-content-start , align-content-end , etc. |
未来のウェブデザインスーパースターたち、楽しいFlexを続けましょう!
Credits: Image by storyset