Bootstrap - フォームレイアウト:ビギナーズガイド

こんにちは、Web開発者の志願者さんたち!このエキサイティングなBootstrapフォームレイアウトの旅にあなたをお連れするのがとても楽しみです。コンピュータサイエンスを10年以上教えてきた者として、多くの学生がBootstrapがどれほど強力でユーザーフレンドリーであるかを理解したときに輝く姿を見てきました。それでは、美しく、レスポンシブなフォームを作成する秘密を解明しましょう!

Bootstrap - Layout

フォームレイアウトの基本

コードを書く前に、私たちが建築家として家を設計していることを想像してみましょう。家には堅牢な基盤と構造が必要と同様に、私たちのフォームにも計画されたレイアウトが必要です。Bootstrapは私たちに効率的で美しいレイアウトを構築するためのツールを提供しています。

コンテナ:フォームの基盤

素晴らしいフォームはコンテナから始まります。Bootstrapでは、containerクラスを使用してレスポンシブな固定幅のコンテナを作成します。以下は簡単な例です:

<div class="container">
<form>
<!-- フォーム要素はここに配置されます -->
</form>
</div>

このコンテナは私たちの家の土地のようなものです。フォームに定義されたスペースを提供し、異なるスクリーンサイズでのレスポンシブネスを助けます。

ユーティリティ:フォームデザインのスイスアーミーナイフ

Bootstrapのユーティリティは、Webデザインのマルチツールです。小さくて強力なクラスで、一般的なレイアウト問題を迅速に解決します。フォームレイアウトに必要ないくつかの主要なユーティリティを見てみましょう。

スペースユーティリティ

スペースユーティリティは、フォーム要素にマージンとパディングを追加します。以下は簡単な参照表です:

ユーティリティクラス 目的
m-* マージンを追加
p-* パディングを追加
mt-*, mb-*, ms-*, me-* 上、下、左、右にマージンを追加
pt-*, pb-*, ps-*, pe-* 上、下、左、右にパディングを追加

以下にこれらを使用した例を示します:

<form>
<div class="mb-3">
<label for="name" class="form-label">Name</label>
<input type="text" class="form-control" id="name">
</div>
<div class="mb-3">
<label for="email" class="form-label">Email</label>
<input type="email" class="form-control" id="email">
</div>
</form>

この例では、mb-3が各フォームグループの下にマージンを追加し、要素に余裕を与えます。

フォームグリッド:構造を築く

今までの基盤とツールを用いて、Bootstrapのグリッドシステムを使用してフォームの構造を築きましょう。グリッドシステムは12カラムのレイアウトに基づいており、レスポンシブデザインを作成するのに役立ちます。

基本的なグリッドレイアウト

以下はシンプルな2カラムフォームレイアウトの例です:

<form>
<div class="row">
<div class="col-md-6">
<label for="firstName" class="form-label">First Name</label>
<input type="text" class="form-control" id="firstName">
</div>
<div class="col-md-6">
<label for="lastName" class="form-label">Last Name</label>
<input type="text" class="form-control" id="lastName">
</div>
</div>
</form>

この例では、rowを使用して水平なカラムグループを作成し、col-md-6を使用して各カラムが中程度のスクリーンサイズ及以上で半分の幅を占めるようにします。

ガッタ:フォームに余裕を与える

ガッタはグリッドシステムのカラム間のスペースです。デフォルトでは、Bootstrapは行にネガティブマージンを追加し、カラムにパディングを追加してガッタを作成します。しかし、ガッタクラスを使用してこれらを調整することもできます。

以下はカスタムガッタの例です:

<form>
<div class="row g-3">
<div class="col-md-6">
<label for="firstName" class="form-label">First Name</label>
<input type="text" class="form-control" id="firstName">
</div>
<div class="col-md-6">
<label for="lastName" class="form-label">Last Name</label>
<input type="text" class="form-control" id="lastName">
</div>
</div>
</form>

g-3クラスは、カラム間に3(1rem)のガッタサイズを追加し、フォームに少し余裕を与えます。

水平フォーム:別の視点

時々、ラベルを入力フィールドの横に配置したいことがあります。これは水平フォームが便利な場面です。以下に一つ作成してみましょう:

<form>
<div class="row mb-3">
<label for="email" class="col-sm-2 col-form-label">Email</label>
<div class="col-sm-10">
<input type="email" class="form-control" id="email">
</div>
</div>
<div class="row mb-3">
<label for="password" class="col-sm-2 col-form-label">Password</label>
<div class="col-sm-10">
<input type="password" class="form-control" id="password">
</div>
</div>
</form>

この例では、col-sm-2を使用してラベルを配置し、col-sm-10を使用して入力フィールドを配置し、小さなスクリーンサイズ及以上で水平レイアウトを作成します。

水平フォームラベルのサイズ調整:適切なフィット

時々、水平フォームでラベルのサイズを調整する必要があります。Bootstrapはサイズ調整クラスでこれを簡単にします。以下に異なるラベルサイズのフォームを作成する方法を示します:

<form>
<div class="row mb-3">
<label for="email" class="col-sm-2 col-form-label col-form-label-sm">Email</label>
<div class="col-sm-10">
<input type="email" class="form-control" id="email">
</div>
</div>
<div class="row mb-3">
<label for="name" class="col-sm-2 col-form-label">Name</label>
<div class="col-sm-10">
<input type="text" class="form-control" id="name">
</div>
</div>
<div class="row mb-3">
<label for="message" class="col-sm-2 col-form-label col-form-label-lg">Message</label>
<div class="col-sm-10">
<input type="text" class="form-control form-control-lg" id="message">
</div>
</div>
</form>

ここでは、col-form-label-smcol-form-label、およびcol-form-label-lgを使用して、小さ、デフォルト、および大きなラベルサイズを作成します。

カラムサイズ調整:フォームをカスタマイズ

Bootstrapのグリッドシステムは、正確なカラム幅を指定するのに役立ちます。これは特にフォームレイアウトを精密に制御する必要があるときに便利です。以下はその例です:

<form>
<div class="row">
<div class="col-2">
<input type="text" class="form-control" placeholder="City">
</div>
<div class="col-3">
<input type="text" class="form-control" placeholder="State">
</div>
<div class="col-7">
<input type="text" class="form-control" placeholder="Zip">
</div>
</div>
</form>

この例では、col-2col-3、およびcol-7を使用して、フォーム行で入力フィールドが特定の割合の可用幅を占めるようにします。

オートサイズ:Bootstrapが計算をします

時々、フォーム入力がコンテンツに基づいて自動的にサイズ調整される必要があります。Bootstrapのオートサイズ機能でこれが可能です。以下にその動作を示します:

<form class="row gy-2 gx-3 align-items-center">
<div class="col-auto">
<label class="visually-hidden" for="autoSizingInput">Name</label>
<input type="text" class="form-control" id="autoSizingInput" placeholder="Jane Doe">
</div>
<div class="col-auto">
<label class="visually-hidden" for="autoSizingSelect">Preference</label>
<select class="form-select" id="autoSizingSelect">
<option selected>Choose...</option>
<option value="1">One</option>
<option value="2">Two</option>
<option value="3">Three</option>
</select>
</div>
<div class="col-auto">
<div class="form-check">
<input class="form-check-input" type="checkbox" id="autoSizingCheck">
<label class="form-check-label" for="autoSizingCheck">
Remember me
</label>
</div>
</div>
<div class="col-auto">
<button type="submit" class="btn btn-primary">Submit</button>
</div>
</form>

この例では、col-autoクラスが各カラムをコンテンツに基づいてサイズ調整し、gy-2およびgx-3クラスが垂直および水平ガッタを追加し、align-items-centerクラスが各カラム内のコンテンツを垂直に中央に配置します。

完璧な例:すべてを組み合わせる

今までの概念をすべて組み合わせたもっと複雑なフォームを見てみましょう:

<div class="container">
<form class="mt-4">
<div class="row mb-3">
<div class="col-md-6">
<label for="firstName" class="form-label">First Name</label>
<input type="text" class="form-control" id="firstName">
</div>
<div class="col-md-6">
<label for="lastName" class="form-label">Last Name</label>
<input type="text" class="form-control" id="lastName">
</div>
</div>
<div class="row mb-3">
<div class="col-md-8">
<label for="email" class="form-label">Email</label>
<input type="email" class="form-control" id="email">
</div>
<div class="col-md-4">
<label for="phone" class="form-label">Phone</label>
<input type="tel" class="form-control" id="phone">
</div>
</div>
<div class="row mb-3">
<div class="col-md-6">
<label for="address" class="form-label">Address</label>
<input type="text" class="form-control" id="address">
</div>
<div class="col-md-3">
<label for="city" class="form-label">City</label>
<input type="text" class="form-control" id="city">
</div>
<div class="col-md-3">
<label for="zip" class="form-label">Zip Code</label>
<input type="text" class="form-control" id="zip">
</div>
</div>
<div class="row mb-3">
<div class="col-12">
<label for="message" class="form-label">Message</label>
<textarea class="form-control" id="message" rows="3"></textarea>
</div>
</div>
<div class="row">
<div class="col-12">
<button type="submit" class="btn btn-primary">Submit</button>
</div>
</div>
</form>
</div>

この例は、コンテナ、グリッドレイアウト、ガッタ、およびレスポンシブデザインの多くの概念を組み合わせ、デスクトップとモバイルデバイスの両方で見栄えの良いフォームを作成します。

インラインフォーム:コンパクトで効率的

よりシンプルなフォームやスペースが限られている場合、インラインフォームが素晴らしい解決策 olabilir。以下にその作成方法を示します:

<form class="row row-cols-lg-auto g-3 align-items-center">
<div class="col-12">
<label class="visually-hidden" for="inlineFormInputGroupUsername">Username</label>
<div class="input-group">
<div class="input-group-text">@</div>
<input type="text" class="form-control" id="inlineFormInputGroupUsername" placeholder="Username">
</div>
</div>

<div class="col-12">
<label class="visually-hidden" for="inlineFormSelectPref">Preference</label>
<select class="form-select" id="inlineFormSelectPref">
<option selected>Choose...</option>
<option value="1">One</option>
<option value="2">Two</option>
<option value="3">Three</option>
</select>
</div>

<div class="col-12">
<div class="form-check">
<input class="form-check-input" type="checkbox" id="inlineFormCheck">
<label class="form-check-label" for="inlineFormCheck">
Remember me
</label>
</div>
</div>

<div class="col-12">
<button type="submit" class="btn btn-primary">Submit</button>
</div>
</form>

このインラインフォームは、row-cols-lg-autoを使用して大型スクリーンではカラムを自動的にサイズ調整し、コンパクトで水平なレイアウトを作成します。

そして、ここまででBootstrapフォームレイアウトの世界を旅しました。基本的な概念から高度な技術まで、練習を重ねることで完璧なフォームを作成できることを覚えておいてください。幸せなコーディングをし、あなたのフォームが常にレスポンシブでユーザーフレンドリーであることを祈っています!

Credits: Image by storyset