ブートストラップフォーム


この章では、Bootstrap を使用してフォームを作成する方法を学びます。 Bootstrap では、いくつかの単純な HTML タグと拡張クラスを通じて、さまざまなスタイルのフォームを作成できます。

フォーム レイアウト

Bootstrap は、次のタイプのフォーム レイアウトを提供します:

  • 縦型フォーム (デフォルト)

  • インライン フォーム

  • 横型フォーム

縦型または基本フォーム

基本形はシングル構造ですにはブートストラップが付属しており、個々のフォーム コントロールはいくつかのグローバル スタイルを自動的に受け取ります。基本的なフォームを作成する手順を以下に示します。

  • 親の <form> 要素に role="form" を追加します。

  • クラス .form-group を使用して、ラベルとコントロールを <div> に配置します。これは最適な間隔を得るために必要です。

  • クラス .form-control をすべてのテキスト要素 <input>、<textarea>、<select> に追加します。

<!DOCTYPE html>
<html>
<head>
<title>ブートストラップの例 - 基本フォーム</title>
<link rel="stylesheet" href="http: / /apps.bdimg.com/libs/bootstrap/3.3.0/css/bootstrap.min.css">
<script src="http://apps.bdimg.com/libs/jquery/2.1.1 / jquery.min.js"></script>
<script src="http://apps.bdimg.com/libs/bootstrap/3.3.0/js/bootstrap.min.js">< /script>
</head>
<body>

<form role="form">
<div class="form-group">
<label for="name"> ;名前</label>
「フォームグループ」>
,,, block">ブロックレベルのヘルプテキストの例を次に示します。 </p>
/div>;
<button type="submit" class="btn btn-default">送信</button>
</form>

</body>
</html>


インスタンス

<!DOCTYPE html>
<html>
<head>
   <title>Bootstrap 实例 - 基本表单</title>
   <link rel="stylesheet" href="http://apps.bdimg.com/libs/bootstrap/3.3.0/css/bootstrap.min.css">
   <script src="http://apps.bdimg.com/libs/jquery/2.1.1/jquery.min.js"></script>
   <script src="http://apps.bdimg.com/libs/bootstrap/3.3.0/js/bootstrap.min.js"></script>
</head>
<body>

<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>

</body>
</html>

インスタンスの実行»

「インスタンスの実行」ボタンをクリックしてオンラインインスタンスを表示します

インライン フォーム

すべての要素がインラインで左揃えでラベルが並んでいるフォームを作成する必要がある場合は、クラス .form-inline を <form> タグに追加します。

<!DOCTYPE html>
<html>
<head>
   <title>Bootstrap 实例 - 内联表单</title>
   <link rel="stylesheet" href="http://apps.bdimg.com/libs/bootstrap/3.3.0/css/bootstrap.min.css">
   <script src="http://apps.bdimg.com/libs/jquery/2.1.1/jquery.min.js"></script>
   <script src="http://apps.bdimg.com/libs/bootstrap/3.3.0/js/bootstrap.min.js"></script>
</head>
<body>

<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>

</body>
</html>
  • デフォルトでは、Bootstrap の input、select、textarea の幅は 100% です。インラインフォームを使用する場合、フォームコントロールで幅を設定する必要があります。

  • クラス.sr-onlyを使用すると、インラインフォームのラベルを非表示にすることができます。

横型フォーム

横型フォームは、マークの数だけでなく、フォームの表示形式も他のフォームと異なります。水平方向にレイアウトされたフォームを作成するには、次の手順に従います。

  • クラス .form-horizo​​ntal を親の <form> 要素に追加します。

  • クラス .form-group を使用して、ラベルとコントロールを <div> に配置します。

  • クラス.control-labelをラベルに追加します。

<!DOCTYPE html>
<html>
<head>
   <title>Bootstrap 实例 - 水平表单</title>
   <link rel="stylesheet" href="http://apps.bdimg.com/libs/bootstrap/3.3.0/css/bootstrap.min.css">
   <script src="http://apps.bdimg.com/libs/jquery/2.1.1/jquery.min.js"></script>
   <script src="http://apps.bdimg.com/libs/bootstrap/3.3.0/js/bootstrap.min.js"></script>
</head>
<body>

<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>

</body>
</html>

サポートされているフォーム コントロール

Bootstrap は、主に input、textarea、checkbox、radio、select などの最も一般的なフォーム コントロールをサポートしています。

入力ボックス (入力)

最も一般的なフォームのテキスト フィールドは、入力ボックスの入力です。ユーザーは、ほとんどの必要なフォーム データをそこに入力できます。 Bootstrap は、text、password、datetime、datetime-local、date、month、time、week、number、email、url、search、telcolor を含むすべてのネイティブ HTML5 入力タイプのサポートを提供します。 input を完全にスタイル設定するには、適切な type 宣言が必要です。

实例
<!DOCTYPE html>
<html>
<head>
   <title>Bootstrap 实例 - 输入框</title>
   <link rel="stylesheet" href="http://apps.bdimg.com/libs/bootstrap/3.3.0/css/bootstrap.min.css">
   <script src="http://apps.bdimg.com/libs/jquery/2.1.1/jquery.min.js"></script>
   <script src="http://apps.bdimg.com/libs/bootstrap/3.3.0/js/bootstrap.min.js"></script>
</head>
<body>

<form role="form">
  <div class="form-group">
    <label for="name">标签</label>
    <input type="text" class="form-control" placeholder="文本输入">
  </div>
 </form>

</body>
</html>

テキストエリア(Textarea)

複数行入力する必要がある場合は、テキストボックスtextareaを使用できます。必要に応じて rows プロパティを変更します (行が少ない = 小さなボックス、行が多い = 大きなボックス)。

实例
<!DOCTYPE html>
<html>
<head>
   <title>Bootstrap 实例 - 文本框</title>
   <link rel="stylesheet" href="http://apps.bdimg.com/libs/bootstrap/3.3.0/css/bootstrap.min.css">
   <script src="http://apps.bdimg.com/libs/jquery/2.1.1/jquery.min.js"></script>
   <script src="http://apps.bdimg.com/libs/bootstrap/3.3.0/js/bootstrap.min.js"></script>
</head>
<body>

<form role="form">
  <div class="form-group">
    <label for="name">文本框</label>
    <textarea class="form-control" rows="3"></textarea>
  </div>
</form>

</body>
</html>

チェックボックスとラジオボタン

チェックボックスとラジオボタンは、ユーザーがさまざまなプリセットオプションから選択できるようにするために使用されます

  • フォームを作成するときに、ユーザーがリストから複数のオプションを選択できるようにする場合は、を使用します。 checkbox。ユーザーが 1 つのオプションのみを選択できるように制限したい場合は、一連のチェックボックスとラジオ ボタンに

  • クラスを使用してそれらを制御します。同じ行に表示されます
  • 次の例は、両方のタイプ (デフォルトとインライン) を示しています。

    選択

    ユーザーに複数のオプションから選択してもらいたい場合に選択ボックスを使用しますが、デフォルトでは選択できるオプションは 1 つだけです。

    • <select> を使用して、通常は州や数値など、ユーザーに馴染みのあるリスト オプションを表示します。

    • ユーザーが複数のオプションを選択できるようにするには、multiple="multiple" を使用します。

    次の例は、両方のタイプ (選択と複数) を示しています:


    インスタンス

    <!DOCTYPE html>
    <html>
    <head>
       <title>Bootstrap 实例 - 复选框和单选按钮</title>
       <link rel="stylesheet" href="http://apps.bdimg.com/libs/bootstrap/3.3.0/css/bootstrap.min.css">
       <script src="http://apps.bdimg.com/libs/jquery/2.1.1/jquery.min.js"></script>
       <script src="http://apps.bdimg.com/libs/bootstrap/3.3.0/js/bootstrap.min.js"></script>
    </head>
    <body>
    
    <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="checkbox-inline">
          <input type="radio" name="optionsRadiosinline" id="optionsRadios3" 
             value="option1" checked> 选项 1
       </label>
       <label class="checkbox-inline">
          <input type="radio" name="optionsRadiosinline" id="optionsRadios4" 
             value="option2"> 选项 2
       </label>
    </div>
    
    </body>
    </html>

    インスタンスの実行»

    オンラインの例を表示するには、[インスタンスの実行] ボタンをクリックしてください

    静的制御

    横型フォーム内の form タグの後にプレーン テキストを配置する必要がある場合は、<p> のクラス .form-control-static を使用します。


    フォーム コントロールの状態

    :focus 状態 (つまり、ユーザーが入力をクリックするか、タブ キーを使用して入力にフォーカスする) に加えて、Bootstrap は無効になっている入力ボックスのスタイルも定義し、次のクラスを提供します。フォームの検証。

    入力ボックスのフォーカス

    入力ボックスの入力が:focusを受け取ると、入力ボックスの輪郭が削除され、box-shadowが適用されます。

    入力ボックスの入力を無効にする

    入力ボックスの入力を無効にしたい場合は、disabled 属性を追加するだけです。これにより、入力ボックスが無効になるだけでなく、入力ボックスのスタイルとマウス ポインターが移動するタイミングも変更されます。 is hovering 要素上にあるときのマウス ポインターのスタイル。

    Disabled fieldset fieldset

    <fieldset> 内のすべてのコントロールを無効にするには、disabled 属性を追加します。

    検証ステータス

    ブートストラップには、エラー、警告、成功メッセージの検証スタイルが含まれています。検証ステータスは、適切なクラス (.has-warning、.has-error または .has-success) を親要素に追加するだけで使用できます。

    次の例は、すべてのコントロールの状態を示しています:

    <!DOCTYPE html>
    <html>
    <head>
       <title>Bootstrap 实例 - 选择框</title>
       <link rel="stylesheet" href="http://apps.bdimg.com/libs/bootstrap/3.3.0/css/bootstrap.min.css">
       <script src="http://apps.bdimg.com/libs/jquery/2.1.1/jquery.min.js"></script>
       <script src="http://apps.bdimg.com/libs/bootstrap/3.3.0/js/bootstrap.min.js"></script>
    </head>
    <body>
    
    <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>
    
    </body>
    </html>

    インスタンス

    实例
    <!DOCTYPE html>
    <html>
    <head>
       <title>Bootstrap 实例 - 静态控件</title>
       <link rel="stylesheet" href="http://apps.bdimg.com/libs/bootstrap/3.3.0/css/bootstrap.min.css">
       <script src="http://apps.bdimg.com/libs/jquery/2.1.1/jquery.min.js"></script>
       <script src="http://apps.bdimg.com/libs/bootstrap/3.3.0/js/bootstrap.min.js"></script>
    </head>
    <body>
    
    <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@example.com</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>
    
    </body>
    </html>

    インスタンスの実行»

    オンラインの例を表示するには、[インスタンスの実行]ボタンをクリックしてください

    フォームコントロールのサイズ

    クラスを使用できますそれぞれ .input-lg.col-lg-* を使用してフォームの高さと幅を設定します。次の例はこれを示しています:


    インスタンス

    <!DOCTYPE html>
    <html>
    <head>
       <title>Bootstrap 实例 - 表单控件状态</title>
       <link rel="stylesheet" href="http://apps.bdimg.com/libs/bootstrap/3.3.0/css/bootstrap.min.css">
       <script src="http://apps.bdimg.com/libs/jquery/2.1.1/jquery.min.js"></script>
       <script src="http://apps.bdimg.com/libs/bootstrap/3.3.0/js/bootstrap.min.js"></script>
    </head>
    <body>
    
    <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>
    
    </body>
    </html>

    インスタンスの実行 »

    オンライン インスタンスを表示するには、[インスタンスの実行] ボタンをクリックします

    フォーム ヘルプ テキスト

    ブートストラップ フォーム コントロールでは、入力ボックスの入力にブロックレベルのヘルプ テキストを含めることができます。幅全体を占めるコンテンツ ブロックを追加するには、<input> の後に .help-block を使用します。次の例はこれを示しています:


    インスタンス

    <!DOCTYPE html>
    <html>
    <head>
       <title>Bootstrap 实例 - 表单控件大小</title>
       <link rel="stylesheet" href="http://apps.bdimg.com/libs/bootstrap/3.3.0/css/bootstrap.min.css">
       <script src="http://apps.bdimg.com/libs/jquery/2.1.1/jquery.min.js"></script>
       <script src="http://apps.bdimg.com/libs/bootstrap/3.3.0/js/bootstrap.min.js"></script>
    </head>
    <body>
    
    <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>
    
    </body>
    </html>

    インスタンスの実行 »

    「インスタンスの実行」ボタンをクリックしてオンラインインスタンスを表示します