Bootstrap 表單


在本章中,我們將學習如何使用 Bootstrap 建立表單。 Bootstrap 透過一些簡單的 HTML 標籤和擴充的類別即可建立出不同樣式的表單。

表單佈局

Bootstrap 提供了下列類型的表單佈局:

  • 垂直表單(預設)

  • 內聯表單

  • 水平表單

#垂直或基本表單

基本的表單結構是Bootstrap 自帶的,個別的表單控制項會自動接收一些全域樣式。以下列出了建立基本表單的步驟:

  • 為父 <form> 元素新增 role="form"

  • 把標籤和控制項放在一個有 class .form-group 的 <div> 中。這是獲取最佳間距所必需的。

  • 為所有的文字元素 <input>、<textarea> 和 <select> 新增 class .form-control

<!DOCTYPE html>
#<html>
<head>
   <title>Bootstrap ;  title>
   <link rel="stylesheet" href="http://apps.bdimg.com/libs/bootstrap/3.3.0/css/bootstrap.min.css">##of; 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># type; text" class="form-control" id="name" 
         placeholder="請輸入名稱">
   </div>
 ##      <label for="inputfile">檔案輸入</label>
      <input type="file" id="inputfile">##1遠;input type="file" id="inputfile">##> >這裡是區塊級幫助文字的實例。 </p>
   </div>
   <div class="checkbox">
      < ##      </label>
   </div>
   <button type="submit" class="btn btn-default">提交</button>
</form>

</body>
</form>
</body>

</html>

點擊"運行實例" 按鈕查看線上實例######

內聯表單

如果需要建立表單,它的所有元素是內聯的,向左對齊的,標籤是並排的,請在<form> 標籤上新增class . form-inline

<!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% 寬度。使用內聯表單時,您需要在表單控制項上設定一個寬度。

  • 使用 class .sr-only,您可以隱藏內聯表單的標籤。

水平表單

水平表單與其他表單不僅標記的數量上不同,而且表單的呈現形式也不同。如需建立一個水平佈局的表單,請按下面的步驟進行:

  • 為父 <form> 元素新增 class .form-horizo​​ntal

  • 把標籤和控制項放在一個有 class .form-group 的 <div> 中。

  • 向標籤新增 class .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

輸入框(Input)

最常見的表單文字欄位是輸入框 input。使用者可以在其中輸入大多數必要的表單資料。 Bootstrap 提供了對所有原生的HTML5 的input 類型的支持,包括:text、password、datetime、datetime-local、date、month、time、week、number、email、url、search、telcolor。適當的 type 宣告是必要的,這樣才能讓 input 獲得完整的樣式。

实例
<!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)和單選框(Radio)

複選框和單選按鈕用於讓使用者從一系列預先設定的選項中進行選擇。

  • 當建立表單時,如果您想要讓使用者從清單中選擇若干個選項時,請使用checkbox。請使用radio。 inline

    class,控制它們顯示在同一行上。 ##實例

  • 運行實例»點擊"運行實例"按鈕查看線上實例

  • 選擇方塊(Select)

    當您想要讓使用者從多個選項中進行選擇,但是預設只能選擇一個選項時,請使用選擇方塊。

    • 使用 <select> 展示列表選項,通常是那些使用者很熟悉的選擇列表,例如州或數字。

    • 使用 multiple="multiple" 允許使用者選擇多個選項。

    下面的實例示範了這兩種類型(select 和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>

    實例



    #執行實例»

    點擊"運行實例" 按鈕查看線上實例

    #靜態控制項

    當您需要在一個水平表單內的表單標籤後放置純文字時,請在<p> 上使用class .form-control-static

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

    表單控制項狀態

    除了: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)即可使用驗證狀態。

    下面的實例示範了所有控制項狀態:

    实例
    <!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>

    實例

    #


    ##執行實例»點擊"運行實例" 按鈕查看線上實例

    表單控制項大小

    您可以分別使用class

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

    實例


    ##運行實例»
    點擊"運行實例" 按鈕查看線上實例

    表單幫助文字

    Bootstrap 表單控制項可以在輸入框 input 上有一個區塊級幫助文字。為了增加一個佔用整個寬度的內容區塊,請在 <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>

    實例



    ##運行實例»點擊"運行實例" 按鈕查看線上實例