本文へスキップ

レイアウト

インラインから水平方向、カスタムグリッド実装まで、フォームレイアウトオプションを使用してフォームに構造を与えましょう。

フォーム

各フォームフィールドのグループは、<Form>要素内に配置する必要があります。Bootstrapは<Form>要素に対するデフォルトのスタイルを提供しませんが、デフォルトで提供される強力なブラウザ機能がいくつかあります。

  • ブラウザのフォームが初めてですか?概要と使用可能な属性の完全なリストについては、MDNフォームドキュメントを確認することを検討してください。
  • <Form>内の<button>はデフォルトでtype="submit"になります。そのため、明確にするために常にtypeを含めるように心がけてください。
  • <fieldset>で囲んでdisabled属性を設定することで、フォーム内のすべてのコントロールを無効にすることができます。

Bootstrapはほとんどすべてのフォームコントロールにdisplay: blockwidth: 100%を適用するため、フォームはデフォルトで垂直に積み重ねられます。追加のクラスを使用して、フォームごとにこのレイアウトを変更できます。

フォームグループ

FormGroupコンポーネントは、フォームに構造を追加する最も簡単な方法です。ラベル、コントロール、オプションのヘルプテキスト、およびフォームバリデーションメッセージのグループ化のための柔軟なコンテナを提供します。fieldsetdiv、またはほぼ他のあらゆる要素で使用できます。

また、controlIdプロップを追加して、idを介してネストされたラベルと入力をアクセシビリティに配慮して接続することもできます。

結果
読み込み中…
ライブエディター

フォームグリッド

より複雑なフォームは、グリッドコンポーネントを使用して構築できます。複数の列、異なる幅、および追加の配置オプションを必要とするフォームレイアウトに使用します。

結果
読み込み中…
ライブエディター

グリッドシステムを使用して、より複雑なレイアウトを作成することもできます。

結果
読み込み中…
ライブエディター

水平方向のフォーム

フォームグループにas={Row}を追加し、Colを使用してラベルとコントロールの幅を指定することで、グリッドを使用して水平方向のフォームを作成します。関連付けられたフォームコントロールと垂直方向に中央揃えするために、FormLabelにもcolumnプロップを追加してください。

場合によっては、必要な完璧な配置を作成するために、マージンまたはパディングのユーティリティを使用する必要があるかもしれません。たとえば、積み重ねられたラジオ入力ラベルのpadding-topを削除して、テキストのベースラインをより適切に揃えています。

結果
読み込み中…
ライブエディター

水平方向のフォームのラベルサイズ

表示されているように、columnプロップを使用して<FormLabel>のサイズを変更できます。

結果
読み込み中…
ライブエディター

列サイズ

前の例で示されているように、グリッドシステムを使用すると、任意の数の<Col><Row>内に配置できます。これらは利用可能な幅を均等に分割します。<Col xs={7}>のような特定の列クラスを使用して、一部の列がより多くのスペースまたはより少ないスペースを占めるように選択することもできます。残りの<Col>は残りのスペースを均等に分割します。

結果
読み込み中…
ライブエディター

自動サイズ調整

次の例では、フレックスボックスユーティリティを使用してコンテンツを垂直方向に中央揃えし、<Col><Col xs="auto">に変更することで、列が必要なスペースだけを占めるようにします。言い換えれば、列はコンテンツに基づいてサイズを調整します。

結果
読み込み中…
ライブエディター

その後、サイズ固有の列クラスを再度組み合わせて使用できます。

結果
読み込み中…
ライブエディター

API

FormGroup