さまざまなフォームを作成するためのフォームコントロールスタイル、レイアウトオプション、およびカスタムコンポーネントの例と使用方法
概要
Bootstrapのフォームコントロールは、再起動されたフォームスタイルをクラスで拡張します。 これらのクラスを使用して、ブラウザーやデバイス間でより一貫性のあるレンダリングを行うため
すべての入力に適切なtype
属性を使用してください(例:,,email
電子メールアドレスの場合またはnumber
数値情報の場合)電子メールの確認、番号選択などの新しい入力コントロールを利用します。
Bootstrapのフォームスタイルを示す簡単な例を次に示します。 覧いただけるのための書類に必要な授業形式のレイアウトします。
フォームコントロール
カスタムフォームを調べて、<select>
s.
ファイル入力については、.form-control
を.form-control-file
に入れ替えます。,
サイジング
.form-control-lg
および.form-control-sm
のようなクラスを使用して高さを設定します。
Readonly
入力の値の変更を防ぐために、入力にreadonly
ブール値属性を追加します。 読み取り専用入力は(無効な入力と同じように)明るく見えますが、標準のカーソルは保持されます。,
読み取り専用プレーンテキスト
<input readonly>
プレーンテキストとしてスタイル設定されたフォーム内の要素を使用する場合は、iv id=”f821ff69a3″デフォルトのフォームフィールドのスタイリングを削除し、正しい余白とパディングを保持するクラス。
範囲入力
.form-control-range
を使用して水平にスクロール可能な範囲入力を設定します。,
チェックボックスと無線
デフォルトのチェックボックスと無線は、.form-check
、HTML要素のレイアウトと動作を改善する両方の入力タイプ チェックボック
無効なチェックボックスと無線がサポートされています。 disabled
属性は、入力の状態を示すのに役立つように明るい色を適用します。,
チェックボックスやラジオの利用を支援HTMLのフォームの検証を簡潔に、アクセスを表します。 したがって、<input>
と<label>
は、<input>
内の<label>
とは対照的に兄弟要素です。 これは、id
およびfor
属性を指定して、<input>
および<label>
を関連付ける必要があるため、少し冗長です。,
Default(stacked)
デフォルトでは、すぐの兄弟である任意の数のチェックボックスと無線は垂直に積み重ねられ、.form-check
と適切な間隔で配置されます。
インライン
.form-check-inline
を任意の.form-check
に追加することにより、同じ水平行にチェックボックスまたは無線をグループ化します。,
ラベルなし
.position-static
を.form-check
内の入力に追加します。ラベルテキストがあります。 支援技術のためのラベルのいくつかの形式を提供することを忘れないでください(たとえば、aria-label
を使用)。,
レイアウト
Bootstrapはdisplay: block
およびwidth: 100%
ほぼすべてのフォームコントロールに適用されるため、フォームはデフォルトで垂直に積み重ねられます。 追加のクラスを使用して、フォームごとにこのレイアウトを変更できます。
フォームグループ
.form-group
クラスは、フォームに構造を追加する最も簡単な方法です。 ラベル、コントロール、オプションのヘルプテキスト、およびフォーム検証メッセージングの適切なグループ化を, デフォルトでは、margin-bottom
のみが適用されますが、必要に応じて.form-inline
追加のスタイルが選択されます。 <fieldset>
s、<div>
s、または他のほぼすべての要素で使用します。
フォームグリッド
より複雑なフォームは、グリッドクラスを使用して構築することができます。 複数の列、様々な幅、および追加の配置オプションを必要とするフォームレイアウトに使用します。,
フォーム行
.row
を.form-row
に交換することもできます。
グリッドシステムでは、より複雑なレイアウトを作成することもできます。
Horizontal form
グループを作成するには、.row
クラスを追加し、.col-*-*
クラスを使用してラベルとコントロールの幅を指定します。, 必ず追加してください.col-form-label
に<label>
関連するフォームコントロールで垂直方向に中央に配置されるようにしてください。
時には、必要な完璧な配置を作成するためにmarginまたはpaddingユーティリティを使用する必要がある場合があります。 たとえば、スタックされた無線入力ラベルのpadding-top
を削除して、テキストのベースラインをより適切に揃えました。,
水平フォームラベルサイジング
列サイジング
前の例で示したように、グリッドシステムでは、.col
.row
または.form-row
内に任意の数の.col
を配置できます。 それらはそれらの間で利用可能な幅を均等に分割します。 また、列のサブセットを選択して多かれ少なかれスペースを占有することもできますが、残りの.col
は残りの部分を均等に分割し、.col-7
ような特定の列クラスを使用します。,
自動サイズ変更
以下の例では、フレックスボックスユーティリティを使用してコンテンツを垂直方向に中央揃えし、.col
を.col-auto
に変更して、列が必要なだけ多くのスペースを占有するようにします。 別の言い方をすれば、列のサイズ自体は内容に基づいています。
その後、サイズ固有の列クラスで再びリミックスすることができます。
もちろん、カスタムフォームコントロールがサポートされています。,
インラインフォーム
.form-inline
クラスを使用して、単一の水平行に一連のラベル、フォームコントロール、およびボタンを表示します。 インラインフォーム内のフォームコントロールは、既定の状態
- コントロールは
display: flex
であり、HTML空白を折りたたみ、間隔とflexboxユーティリティで配置制御を提供できます。 - コントロールと入力グループは
width: auto
を受け取り、ブートストラップのデフォルトwidth: 100%
をオーバーライドします。, - コントロールは、モバイルデバ
個々のフォームコントロールの幅と配置に手動で対処する必要がある場合があります間隔ユーティリティ(以下に示すように)。 最後に、<label>
を各フォームコントロールに含めるようにしてください。.sr-only
でスクリーンリーダー以外の訪問者から隠す必要がある場合でも、.sr-only
。
カスタムフォームコントロールと選択もサポートされています。,
隠しラベルの代替
スクリーンリーダーなどの支援技術は、すべての入力にラベルを含めないと、フォームに問題があります。 これらのインラインフォームでは、.sr-only
クラスを使用してラベルを非表示にできます。 支援技術のラベルを提供する別の方法として、aria-label
、aria-labelledby
またはtitle
属性などがあります。, これらのいずれも存在しない場合、支援技術は、存在する場合はplaceholder
属性を使用することに頼るかもしれませんが、placeholder
を他のラベル付け方法の代わりに使用することは推奨されないことに注意してください。
ヘルプテキスト
フォーム内のブロックレベルのヘルプテキストは、.form-text
(v3では以前は.help-block
として知られていました)を使用して作成できます。 インラインヘルプテキストは、.text-muted
のような任意のインラインHTML要素とユーティリティクラスを使用して柔軟に実装できます。,
ヘルプテキストをフォームコントロールに関連付ける
ヘルプテキストは、aria-describedby
属性を使用して関連付けるフォームコントロールに明示的 これにより、スクリーンリーダーなどの支援技術は、ユーザーがコントロールにフォーカスまたは入力したときにこのヘルプテキストを
入力の下のヘルプテキストは、.form-text
でスタイルを設定できます。 このクラスにはdisplay: block
が含まれており、上記の入力から簡単に間隔を空けるために上部マージンを追加します。,
インラインテキストは、ユーティリティクラス以外の何ものでも、典型的なインラインHTML要素(<small>
、<span>
など)を使用できます。
無効なフォーム
入力にdisabled
ブール属性を追加して、ユーザーの操作を防ぎ、軽く見えるようにします。,
disabled
属性を<fieldset>
内のすべてのコントロールを無効にします。
アンカー付きの警告
デフォルトでは、ブラウザは<input>
、<select>
および<button>
<fieldset disabled>
内のすべてのネイティブフォームコントロールそしてそれらの上にマウスの相互作用。, ただし、フォームに<a ... class="btn btn-*">
要素も含まれている場合、これらにはpointer-events: none
のスタイルのみが与えられます。 ボタンの無効状態についてのセクション(特にアンカー要素のサブセクション)で説明したように、このCSSプロパティはまだ標準化されておらず、Internet Explorer10 ようにすることもできますので、利用カスタムJavaScriptを無効になります。,
ブラウザ間の互換性
Bootstrapはすべてのブラウザでこれらのスタイルを適用しますが、Internet Explorer11以降ではdisabled
<fieldset>
カスタムJavaScriptを使用して、これらのブラウザでfieldsetを無効にします。
検証
HTML5フォーム検証を使用して、ユーザーに貴重で実用的なフィードバックを提供します–すべてのサポートされているブラウザで利用可能です。 お選びからブラウザのデフォルトの検証、または実装のカスタムメッセージを社内蔵の授業やスターターです。,
現在、ネイティブブラウザのデフォルトの検証メッセージは、すべてのブラウザ(特にデスクトップとモバイルのChrome)で支援技術に一貫して公開され
仕組み
フォーム検証がブートストラップでどのように機能するかは次のとおりです。
- HTMLフォーム検証は、CSSの二つの擬似クラス、
:invalid
および:valid
を介して適用されます。 これは、<input>
、<select>
、および<textarea>
要素に適用されます。, - ブートストラップは、
:invalid
および:valid
スタイルを親.was-validated
クラスにスコープし、通常は<form>
に適用されます。 その他、必要な分野な値を示して無効なページです。 このようにして、いつアクティブにするかを選択できます(通常はフォーム送信が試行された後)。 - フォームの外観をリセットするには(たとえば、AJAXを使用した動的フォーム送信の場合)、
.was-validated
クラスを<form>
から再度削除します。フォームの外観をリセットするには、<form>
フォームの外観をリセットする必要があります。,フォールバックとして、.is-invalid
および.is-valid
サーバー側の検証のための擬似クラスの代わりにクラスを使用できます。 彼らは必要ありません.was-validated
親クラス。CSSの仕組みの制約のため、カスタムJavaScriptの助けを借りずに、DOMのフォームコントロールの前にある<label>
にスタイルを適用することはできません。 - すべての最新ブラウザ支援、制約検証APIでは、JavaScriptの方法の妥当性を検証形式で制御できます。,
- フィードバックメッセージは、ブラウザのデフォルト(ブラウザごとに異なり、CSS経由でスタイル不可能)または追加のHTMLとCSSを持つカスタムフィードバック
- JavaScriptでは、
setCustomValidity
でカスタム有効性メッセージを提供できます。
これを念頭に置いて、カスタムフォーム検証スタイル、オプションのサーバー側クラス、およびブラウザのデフォルトについて次のデモを検討してくださ,
カスタムスタイル
カスタムブートストラップフォーム検証メッセージの場合、novalidate
ブール属性を<form>
に追加する必要があります。 このオブラウザのデフォルトの声をツールチップがアクセスを提供する形で検証ApiはJavaScriptです。 以下のフォームを送信してみてください;私たちのJavaScriptは送信ボタンを傍受し、あなたにフィードバックを 送信しようとすると、:invalid
および:valid
スタイルがフォームコントロールに適用されます。,
カスタムフィードバックスタイ <select>
の背景アイコンは、.custom-select
でのみ使用でき、.form-control
では使用できません。
ブラウザのデフォルト
カスタム検証フィードバックメッセージやフォームの動作を変更するためのJavaScriptの書き込みに興味がありませんか? すべての良い、あなたはブラウザのデフォルトを使用 み提出する場合に必要となります。 お使いのブラウザやOSによっては、フィードバックのスタイルが若干異なります。,
これらの声タイルできな柱とCSSできカスタマイズのテキストを通じて可能です。
サーバー側
クライアント側の検証を使用することをお勧めしますが、サーバー側の検証が必要な場合は、.is-invalid
および.is-valid
で無効で有効なフォームフィールドを示すことができます。 これらのクラスでも.invalid-feedback
がサポートされていることに注意してください。,
サポートされている要素
検証スタイルは、次のフォームコントロールとコンポーネントで使用できます。
ツールチップ
フォームレイアウトで許可されている場合は、.{valid|invalid}-feedback
クラスを.{valid|invalid}-tooltip
クラスに入れ替えて、スタイル付きツールチップで検証フィードバックを表示できます。 ツールチップの配置には、position: relative
を持つ親がいることを確認してください。 以下の例では、列クラスにはすでにこれがありますが、プロジェクトには別の設定が必要な場合があります。,
カスタマイズ
検証状態は、$form-validation-states
マップを使用してSassを介してカスタマイズできます。 _variables.scss
ファイルにあるこのSassマップは、デフォルトのvalid
/invalid
検証状態を生成するためにループされます。 含まれまでネストしたマップのカスタマイズそれぞれの状態のアイコンで表します。 ながらないその他の国に対応ブラウザによって、利用カスタムスタイルを追加できます複雑なフォルム。,
form-validation-state
ミックスインも変更せずにこれらの値をカスタマイズすることはお勧めしません。
カスタムフォーム
さらにカスタマイズとクロスブラウザの一貫性のために、ブラウザのデフォルトを置き換えるために完全にカスタムフォーム これらはセマンティックでアクセス可能なマークアップの上に構築されているため、既定のフォームコントロールの,
チェックボックスとラジオ
各チェックボックスとラジオ<input>
と<label>
ペアリングは<div>
カスタムコントロールを作成 構造的には、これはデフォルトの.form-check
と同じアプローチです。
兄弟セレクター(~
)をすべての<input>
状態に使用します—:checked
のように—カスタムフォームインジケーターを適切にスタイル, .custom-control-label
クラスと組み合わせると、<input>
の状態に基づいて各アイテムのテキストをスタイル設定することもできます。
デフォルトの<input>
をopacity
で非表示にし、.custom-control-label
を使用して、::before
および::after
で新しいカスタムフォームインジケーターを作成します。 残念ながら、CSSの<input>
だけからカスタムカスタムを構築することはできませんcontent
その要素では機能しません。,
チェックされた状態では、Open Iconicのbase64埋め込みSVGアイコンを使用します。 この制御のためのスタイリングおよび位置決め全体のブラウザやデバイス
チェックボックス
カスタムチェックボックスは、JavaScriptを介して手動で設定すると、:indeterminate
擬似クラスを利用することもできます(指定できるHTML属性はありません)。,jQueryを使用している場合は、このようなもので十分です。
ラジオ
inline
無効
カスタムチェックボックス, disabled
ブール属性を<input>
に追加すると、カスタムインジケータとラベルの説明が自動的にスタイル付けされます。
Switches
スイッチにはカスタムチェックボックスのマークアップがありますが、.custom-switch
クラスを使用してトグルスイッチをレンダリングします。 スイッチは、disabled
属性もサポートします。,
選択メニュー
カスタム<select>
メニューには、カスタムクラス.custom-select
カスタムスタイルを カスタムスタイルは<select>
の最初の外観に制限されており、ブラウザの制限により<option>
を変更できません。
同様のサイズのテキスト入力に一致するように、小規模および大規模のカスタム選択から選択することもできます。,
multiple
属性もサポートされています。
size
属性:
範囲
カスタム<input type="range">
.custom-range
. のトラックの背景や親指の値の両方を称が同じブラウザを推奨いたします。 IEとFirefoxのみが進捗状況を視覚的に示す手段として親指の左または右からトラックを”埋める”ことをサポートしているため、現在はサポートしていません。,
Range inputs have implicit values for min
and max
—0
and 100
, respectively. You may specify new values for those using the min
and max
attributes.
By default, range inputs “snap” to integer values., これを変更するには、step
値を指定できます。 以下の例では、step="0.5"
を使用してステップ数を倍増させます。
ファイルブラウザ
カスタムファイル入力をアニメーション化するための推奨プラグイン:bs-custom-file-input、,
ファイル入力は最も厄介なものであり、機能的なChoose file…およびselected file name textでフックしたい場合は、追加のJavaScriptが必要です。デフォルトのファイルを非表示にします<input>
opacity
代わりにスタイルを設定します<label>
。 ボタンは生成され、::after
で配置されます。 最後に、width
とheight
を<input>
に宣言して、周囲のコンテンツの適切な間隔を確保します。,
SCSSで文字列を翻訳またはカスタマイズする
:lang()
擬似クラスは、”Browse”テキストを他の言語に翻訳できるようにするために使用されます。 関連する言語タグとローカライズされた文字列を使用して、$custom-file-text
Sass変数にエントリをオーバーライドまたは追加します。 英語の文字列は同じ方法でカスタマイズできます。, たとえば、スペイン語の翻訳を追加する方法は次のとおりです(スペイン語の言語コードはes
)。
lang(es)
スペイン語のカスタムファイル入力翻訳:
正しいテキストを表示するには、ドキュメント(またはそのサブツリー)の言語を正しく設定する必要があります。, これは、lang
<html>
要素の属性、またはContent-Language
HTTPヘッダーなどを使用して行うことができます。
HTMLで文字列を翻訳またはカスタマイズする
Bootstrapは、カスタム入力ラベル(オランダ語の例)に追加できる属性を使用してHTMLの”Browse”テキストを翻訳する方法も提供します。
Leave a Reply