レイアウト
インラインから水平方向、カスタムグリッド実装まで、フォームレイアウトオプションを使用してフォームに構造を与えましょう。
フォーム
各フォームフィールドのグループは、<Form>
要素内に配置する必要があります。Bootstrapは<Form>
要素に対するデフォルトのスタイルを提供しませんが、デフォルトで提供される強力なブラウザ機能がいくつかあります。
- ブラウザのフォームが初めてですか?概要と使用可能な属性の完全なリストについては、MDNフォームドキュメントを確認することを検討してください。
<Form>
内の<button>
はデフォルトでtype="submit"
になります。そのため、明確にするために常にtype
を含めるように心がけてください。<fieldset>
で囲んでdisabled
属性を設定することで、フォーム内のすべてのコントロールを無効にすることができます。
Bootstrapはほとんどすべてのフォームコントロールにdisplay: block
とwidth: 100%
を適用するため、フォームはデフォルトで垂直に積み重ねられます。追加のクラスを使用して、フォームごとにこのレイアウトを変更できます。
フォームグループ
FormGroup
コンポーネントは、フォームに構造を追加する最も簡単な方法です。ラベル、コントロール、オプションのヘルプテキスト、およびフォームバリデーションメッセージのグループ化のための柔軟なコンテナを提供します。fieldset
、div
、またはほぼ他のあらゆる要素で使用できます。
また、controlId
プロップを追加して、id
を介してネストされたラベルと入力をアクセシビリティに配慮して接続することもできます。
フォームグリッド
より複雑なフォームは、グリッドコンポーネントを使用して構築できます。複数の列、異なる幅、および追加の配置オプションを必要とするフォームレイアウトに使用します。
グリッドシステムを使用して、より複雑なレイアウトを作成することもできます。
水平方向のフォーム
フォームグループにas={Row}
を追加し、Col
を使用してラベルとコントロールの幅を指定することで、グリッドを使用して水平方向のフォームを作成します。関連付けられたフォームコントロールと垂直方向に中央揃えするために、FormLabel
にもcolumn
プロップを追加してください。
場合によっては、必要な完璧な配置を作成するために、マージンまたはパディングのユーティリティを使用する必要があるかもしれません。たとえば、積み重ねられたラジオ入力ラベルのpadding-top
を削除して、テキストのベースラインをより適切に揃えています。
水平方向のフォームのラベルサイズ
表示されているように、column
プロップを使用して<FormLabel>
のサイズを変更できます。
列サイズ
前の例で示されているように、グリッドシステムを使用すると、任意の数の<Col>
を<Row>
内に配置できます。これらは利用可能な幅を均等に分割します。<Col xs={7}>
のような特定の列クラスを使用して、一部の列がより多くのスペースまたはより少ないスペースを占めるように選択することもできます。残りの<Col>
は残りのスペースを均等に分割します。
自動サイズ調整
次の例では、フレックスボックスユーティリティを使用してコンテンツを垂直方向に中央揃えし、<Col>
を<Col xs="auto">
に変更することで、列が必要なスペースだけを占めるようにします。言い換えれば、列はコンテンツに基づいてサイズを調整します。
その後、サイズ固有の列クラスを再度組み合わせて使用できます。