Bootstrap 表单
この章では、Bootstrapを使用してフォームを作成する方法を学びます。Bootstrapは、いくつかの簡単なHTMLタグと拡張クラスを使用して、さまざまなスタイルのフォームを作成できます。
Bootstrap は次のタイプのフォームレイアウトを提供します:
垂直または基本フォーム
基本的なフォーム構造はBootstrapに組み込まれており、個々のフォームコントロールは自動的にいくつかのグローバルスタイルを受け取ります。以下に、基本的なフォームを作成する手順を示します:
- 親の <form> 要素に追加role="form"。
- ラベルとコントロールを、class を持つ.form-groupの <div> の中に置きます。これは最適な間隔を得るために必要です。
- すべてのテキスト要素 <input>、<textarea>、<select> に class=" を追加form-control" 。
实例
<form role="form">
<div class="form-group">
<label for="name">名称</label>
<input type="text" class="form-control" id="name" placeholder="请输入名称">
</div>
<div class="form-group">
<label for="inputfile">文件输入</label>
<input type="file" id="inputfile">
<p class="help-block">これはブロックレベルのヘルプテキストの例です。</p>
</div>
<div class="checkbox">
<label>
<input type="checkbox">请打勾</label>
</div>
<button type="submit" class="btn btn-default">提交</button>
</form>
尝试一下 »
結果は次のとおりです:
内联表单
すべての要素がインラインで左揃え、ラベルが並んでいるフォームを作成する必要がある場合は、<form> タグに class を追加します.form-inline。
实例
<form class="form-inline" role="form">
<div class="form-group">
<label class="sr-only" for="name">名称</label>
<input type="text" class="form-control" id="name" placeholder="请输入名称">
</div>
<div class="form-group">
<label class="sr-only" for="inputfile">文件输入</label>
<input type="file" id="inputfile">
</div>
<div class="checkbox">
<label>
<input type="checkbox">请打勾</label>
</div>
<button type="submit" class="btn btn-default">提交</button>
</form>
尝试一下 »
結果は次のとおりです:
- デフォルトでは、Bootstrapの input、select、textarea は幅100%です。インラインフォームを使用する場合は、フォームコントロールに幅を設定する必要があります。
- 使用 class.sr-only、インラインフォームのラベルを非表示にすることができます。
水平表单
水平フォームは、他のフォームとはマークアップの量だけでなく、フォームの表示形式も異なります。水平レイアウトのフォームを作成するには、次の手順に従います:
- 親の <form> 要素に class を追加.form-horizontal。
- ラベルとコントロールを、class を持つ.form-groupの <div> 中。
- ラベルに class を追加.control-label。
实例
<form class="form-horizontal" role="form">
<div class="form-group">
<label for="firstname" class="col-sm-2 control-label">名字</label>
<div class="col-sm-10">
<input type="text" class="form-control" id="firstname" placeholder="请输入名字">
</div>
</div>
<div class="form-group">
<label for="lastname" class="col-sm-2 control-label">姓</label>
<div class="col-sm-10">
<input type="text" class="form-control" id="lastname" placeholder="请输入姓">
</div>
</div>
<div class="form-group">
<div class="col-sm-offset-2 col-sm-10">
<div class="checkbox">
<label>
<input type="checkbox">请记住我</label>
</div>
</div>
</div>
<div class="form-group">
<div class="col-sm-offset-2 col-sm-10">
<button type="submit" class="btn btn-default">登录</button>
</div>
</div>
</form>
尝试一下 »
結果は次のとおりです:
Bootstrap は最も一般的なフォームコントロールをサポートしており、主にinput、textarea、checkbox、radio および select。
入力フィールド(Input)
最も一般的なフォームテキストフィールドは入力ボックス input です。ユーザーはその中に必要なフォームデータのほとんどを入力できます。Bootstrapは、すべてのネイティブHTML5の input タイプをサポートしています:text、password、datetime、datetime-local、date、month、time、week、number、email、url、search、telとcolor。適切なtype宣言は必須であり、これにより~を可能にします。input完全なスタイルを取得します。
实例
<form role="form">
<div class="form-group">
<label for="name">标签</label>
<input type="text" class="form-control" placeholder="文本输入">
</div>
</form>
尝试一下 »
結果は次のとおりです:
テキストエリア(Textarea)
複数行の入力が必要な場合は、テキストボックス textarea を使用できます。必要に応じて変更できますrows属性(行が少ない = 小さいボックス、行が多い = 大きいボックス)。
实例
<form role="form">
<div class="form-group">
<label for="name">文本框</label>
<textarea class="form-control" rows="3"></textarea>
</div>
</form>
尝试一下 »
結果は次のとおりです:
チェックボックス(Checkbox)とラジオボタン(Radio)
チェックボックスとラジオボタンは、ユーザーが一連の事前設定されたオプションから選択できるようにするために使用されます。
- フォームを作成するとき、ユーザーにリストから複数のオプションを選択させたい場合は、次を使用しますcheckbox。ユーザーが1つのオプションしか選択できないように制限する場合は、次を使用しますradio。
- 一連のチェックボックスとラジオボタンに使用します。.checkbox-inline 或 .radio-inlineclass を使用して、それらを同じ行に表示するように制御します。
以下の例は、これら2つのタイプ(デフォルトとインライン)を示しています:
实例
<label for="name">デフォルトのチェックボックスとラジオボタンの例</label>
<div class="checkbox">
<label><input type="checkbox" value="">选项 1</label>
</div>
<div class="checkbox">
<label><input type="checkbox" value="">选项 2</label>
</div>
<div class="radio">
<label>
<input type="radio" name="optionsRadios" id="optionsRadios1" value="option1" checked>选项 1</label>
</div>
<div class="radio">
<label>
<input type="radio" name="optionsRadios" id="optionsRadios2" value="option2">选项 2 - 选择它将会取消选择选项 1</label>
</div>
<label for="name">インラインのチェックボックスとラジオボタンの例</label>
<div>
<label class="checkbox-inline">
<input type="checkbox" id="inlineCheckbox1" value="option1">选项 1</label>
<label class="checkbox-inline">
<input type="checkbox" id="inlineCheckbox2" value="option2">选项 2</label>
<label class="checkbox-inline">
<input type="checkbox" id="inlineCheckbox3" value="option3">选项 3</label>
<label class="radio-inline">
<input type="radio" name="optionsRadiosinline" id="optionsRadios3" value="option1" checked>选项 1</label>
<label class="radio-inline">
<input type="radio" name="optionsRadiosinline" id="optionsRadios4" value="option2">选项 2</label>
</div>
尝试一下 »
結果は次のとおりです:
セレクトボックス(Select)
ユーザーに複数のオプションから選択させたいが、デフォルトでは1つのオプションしか選択できないようにする場合は、選択ボックスを使用します。
- <select> を使用してリストオプションを表示します。通常は、州や数字などユーザーがよく知っている選択リストです。
- 使用multiple="multiple"ユーザーが複数のオプションを選択できるようにします。
以下の例は、これら2つのタイプ(select と multiple)を示しています:
实例
<form role="form">
<div class="form-group">
<label for="name">选择列表</label>
<select class="form-control">
<option>1</option>
<option>2</option>
<option>3</option>
<option>4</option>
<option>5</option>
</select>
<label for="name">複数選択可能な選択リスト</label>
<select multiple class="form-control">
<option>1</option>
<option>2</option>
<option>3</option>
<option>4</option>
<option>5</option>
</select>
</div>
</form>
尝试一下 »
結果は次のとおりです:
水平フォーム内のフォームラベルの後にプレーンテキストを配置する必要がある場合は、<p> に class を使用します.form-control-static。
实例
<form class="form-horizontal" role="form">
<div class="form-group">
<label class="col-sm-2 control-label">Email</label>
<div class="col-sm-10">
<p class="form-control-static">[email protected]</p>
</div>
</div>
<div class="form-group">
<label for="inputPassword" class="col-sm-2 control-label">密码</label>
<div class="col-sm-10">
<input type="password" class="form-control" id="inputPassword" placeholder="请输入密码">
</div>
</div>
</form>
尝试一下 »
結果は次のとおりです:
除いて:focus状態(つまり、ユーザーが input をクリックするか、Tabキーを使用して input にフォーカスしたとき)、Bootstrapは無効な入力ボックスのスタイルも定義し、フォーム検証の class を提供します。
输入框焦点
入力フィールド input が受け取ったとき:focusとき、入力ボックスの輪郭が削除され、同時に適用されますbox-shadow。
無効化された入力フィールド input
入力ボックス input を無効にしたい場合は、単に追加するだけでdisabled属性を追加します。これにより、入力ボックスが無効になるだけでなく、入力ボックスのスタイルと、マウスポインターが要素上にホバーしたときのマウスポインターのスタイルも変更されます。
無効化されたフィールドセット fieldset
<fieldset> に disabled 属性を追加して、<fieldset> 内のすべてのコントロールを無効にします。
验证状态
Bootstrap には、エラー、警告、成功メッセージの検証スタイルが含まれています。親要素に適切な class(.has-warning、 .has-error 或 .has-success)を使用すると、検証状態を利用できます。
以下の例は、すべてのコントロールの状態を示しています:
实例
<form class="form-horizontal" role="form">
<div class="form-group">
<label class="col-sm-2 control-label">聚焦</label>
<div class="col-sm-10">
<input class="form-control" id="focusedInput" type="text" value="该输入框获得焦点...">
</div>
</div>
<div class="form-group">
<label for="inputPassword" class="col-sm-2 control-label">禁用</label>
<div class="col-sm-10">
<input class="form-control" id="disabledInput" type="text" placeholder="该输入框禁止输入..." disabled>
</div>
</div>
<fieldset disabled>
<div class="form-group">
<label for="disabledTextInput" class="col-sm-2 control-label">禁用输入(Fieldset disabled)</label>
<div class="col-sm-10">
<input type="text" id="disabledTextInput" class="form-control" placeholder="禁止输入">
</div>
</div>
<div class="form-group">
<label for="disabledSelect" class="col-sm-2 control-label">禁用选择菜单(Fieldset disabled)</label>
<div class="col-sm-10">
<select id="disabledSelect" class="form-control">
<option>禁止选择</option>
</select>
</div>
</div>
</fieldset>
<div class="form-group has-success">
<label class="col-sm-2 control-label" for="inputSuccess">输入成功</label>
<div class="col-sm-10">
<input type="text" class="form-control" id="inputSuccess">
</div>
</div>
<div class="form-group has-warning">
<label class="col-sm-2 control-label" for="inputWarning">输入警告</label>
<div class="col-sm-10">
<input type="text" class="form-control" id="inputWarning">
</div>
</div>
<div class="form-group has-error">
<label class="col-sm-2 control-label" for="inputError">输入错误</label>
<div class="col-sm-10">
<input type="text" class="form-control" id="inputError">
</div>
</div>
</form>
尝试一下 »
結果は次のとおりです:
class をそれぞれ使用できます.input-lgと.col-lg-*フォームの高さと幅を設定します。以下の例はこれを示しています:
实例
<form role="form">
<div class="form-group">
<input class="form-control input-lg" type="text" placeholder=".input-lg">
</div>
<div class="form-group">
<input class="form-control" type="text" placeholder="默认输入">
</div>
<div class="form-group">
<input class="form-control input-sm" type="text" placeholder=".input-sm">
</div>
<div class="form-group"></div>
<div class="form-group">
<select class="form-control input-lg">
<option value="">.input-lg</option>
</select>
</div>
<div class="form-group">
<select class="form-control">
<option value="">默认选择</option>
</select>
</div>
<div class="form-group">
<select class="form-control input-sm">
<option value="">.input-sm</option>
</select>
</div>
<div class="row">
<div class="col-lg-2">
<input type="text" class="form-control" placeholder=".col-lg-2">
</div>
<div class="col-lg-3">
<input type="text" class="form-control" placeholder=".col-lg-3">
</div>
<div class="col-lg-4">
<input type="text" class="form-control" placeholder=".col-lg-4">
</div>
</div>
</form>
尝试一下 »
結果は次のとおりです:
Bootstrapフォームコントロールは、入力inputにブロックレベルのヘルプテキストを持つことができます。全体の幅を占めるコンテンツブロックを追加するには、<input>の後に使用します。.help-block。以下の例は、この点を示しています:
实例
<form role="form">
<span>帮助文本实例</span>
<input class="form-control" type="text" placeholder="">
<span class="help-block">より長いヘルプテキストブロックで、1行を超えるため、
次の行に拡張する必要があります。この例のヘルプテキストは合計2行です。</span>
</form>
尝试一下 »
結果は次のとおりです:
其他扩展