前言:由於表單的元素比較多,因此將Bootstrap的表單單獨做個總結,表單作為Bootstrap的核心內容,主要功能是用來與用戶做交流的一個網頁控件,良好的表單設計能夠讓網頁與用戶更好的溝通。表單中常見的元素主要包括:文本輸入框、下拉選擇框、單選按鈕、復選按鈕、文本域和按鈕等。
一、基礎表單
<form role="form"> <div class="form-group"> <label for="exampleInputEmail1">郵箱:</label> <input type="email" class="form-control" id="exampleInputEmail1" placeholder="請輸入您的郵箱地址"> </div> <div class="form-group"> <label for="exampleInputPassword1">密碼</label> <input type="password" class="form-control" id="exampleInputPassword1" placeholder="請輸入您的郵箱密碼"> </div> <button type="submit" class="btn btn-default">進入郵箱</button> </form>
具體解釋:
(1)對於form標簽的role屬性,只是為了增強語義性,並無其他作用;
(2)給div設定.form-group類名,是為了讓每個輸入框上下間隔一定的距離,不然兩個就會挨著;
(3)還有label的for屬性和input的id必須同名,是為了標識它倆是一組,且當鼠標點擊label標簽時,光標會自動鎖定到輸入框,不用for屬性時也可這樣寫:<label>郵箱:<input type="email" class="form-control" placeholder="請輸入您的郵箱地址"> </label>,此時input的長度不是屏幕寬度;
(4)給form添加.form-control類:
1.寬度100%顯示;
2.設置了一個淺灰色(#ccc)的邊框;
3.具有4px的圓角;
4.設置陰影效果,並且元素得到聚焦時,陰影和邊框效果會有所變化;
二、水平表單(標簽在左,輸入框在右)
<form class="form-horizontal" role="form"> <div class="form-group"> <label for="inputEmail3" class="col-sm-2 control-label">郵箱</label> <div class="col-sm-10"> <input type="email" class="form-control" id="inputEmail3" placeholder="請輸入您的郵箱地址"> </div> </div> <div class="form-group"> <label for="inputPassword3" class="col-sm-2 control-label">密碼</label> <div class="col-sm-10"> <input type="password" class="form-control" id="inputPassword3" placeholder="請輸入您的郵箱密碼"> </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>
具體解釋:
在form標簽上使用類.form-horizontal主要有以下作用:
1、設置表單控件padding和margin值;
2、改變“form-group”的表現形式,類似於網格系統的“row”;
在使用時必須和網格系統配合使用,才能實現水平方向的效果,對於不同寬度的設備顯示不同的布局,使用時可以調節浏覽器的大小看不同的效果,當浏覽器大小小於某個值就會呈垂直顯示。
三、內聯表單(表單控件都在一行顯示)
<form class="form-inline" role="form"> <div class="form-group"> <label for="exampleInputEmail2">郵箱</label> <input type="email" class="form-control" id="exampleInputEmail2" placeholder="請輸入你的郵箱地址"> </div> <div class="form-group"> <label for="exampleInputPassword2">密碼</label> <input type="password" class="form-control" id="exampleInputPassword2" placeholder="請輸入你的郵箱密碼"> </div> <button type="submit" class="btn btn-default">進入郵箱</button> </form>
具體解釋:
有時我們會用到在網頁頂部的導航欄輸入用戶名和密碼,這時就需要在一行顯示,此時給form標簽添加.form-inline類就可輕而易舉的實現;同時當改變顯示設備大小時就會自動發生換行,呈普通表單的樣式。
四、表單的基本元素
1、input元素:加上類.form-control就可以實現最基本的輸入框樣式
(1)基本輸入框
<input type="text" class="form-control">
(2)比基本大的輸入框
<input type="text" class="form-control input-lg">
(3)比基本小的輸入框
<input type="text" class="form-control input-sm">
2、 textarea元素:加上類.form-control可以不用設置cols屬性值,此時標簽寬度為100%
<textarea rows="5" class="form-control">
3.、select元素:與原始一致,作為下拉選擇框,可以實現多行選擇和單行選擇,加上.form-control類只是為了同一風格
<select class="form-control"><option>222</option></select>
4.、復選框checkbox和單選按鈕radio:
(1)給checkbox和radio專門寫了.checkbox和.radio這兩個類,是為了解決對齊問題,下面的代碼是垂直顯示
`<form role="form"> <div class="checkbox"> <label> <input type="checkbox" value=""> 踢足球 </label> </div> <div class="checkbox"> <label> <input type="checkbox" value=""> 打籃球 </label> </div> <div class="radio"> <label> <input type="radio" name="optionsRadios" id="optionsRadios1" value="love" checked> 喜歡 </label> </div> <div class="radio"> <label> <input type="radio" name="optionsRadios" id="optionsRadios2" value="hate"> 不喜歡 </label> </div> </form> `
(2)復選框和單選框水平顯示,此時不需要.checkbox和.radio類,但是要配合.form-group類同時使用,給label標簽加上.check-inline或.radio-inline類即可
<form role="form"> <div class="form-group"> <label class="checkbox-inline"> <input type="checkbox" value="option1">游戲 </label> <label class="checkbox-inline"> <input type="checkbox" value="option2">攝影 </label> <label class="checkbox-inline"> <input type="checkbox" value="option3">旅游 </label> </div> <div class="form-group"> <label class="radio-inline"> <input type="radio" value="option1" name="sex">男性 </label> <label class="radio-inline"> <input type="radio" value="option2" name="sex">女性 </label> <label class="radio-inline"> <input type="radio" value="option3" name="sex">中性 </label> </div> </form>
五、表單的驗證
<form role="form"> <div class="form-group has-success has-feedback"> <label class="control-label" for="inputSuccess1">成功狀態</label> <input type="text" class="form-control" id="inputSuccess1" placeholder="成功狀態" > <span class="help-block">你輸入的信息是正確的</span> <span class="glyphicon glyphicon-ok form-control-feedback"></span> </div> <div class="form-group has-warning has-feedback"> <label class="control-label" for="inputWarning1">警告狀態</label> <input type="text" class="form-control" id="inputWarning1" placeholder="警告狀態"> <span class="help-block">請輸入正確信息</span> <span class="glyphicon glyphicon-warning-sign form-control-feedback"></span> </div> <div class="form-group has-error has-feedback"> <label class="control-label" for="inputError1">錯誤狀態</label> <input type="text" class="form-control" id="inputError1" placeholder="錯誤狀態"> <span class="help-block">你輸入的信息是錯誤的</span> <span class="glyphicon glyphicon-remove form-control-feedback"></span> </div> </form>
具體解釋:
給div加上不同的類,如.has-warning警告狀態,顯示為黃色,.has-error錯誤狀態,顯示為紅色,.has-success成功狀態,顯示為綠色;第一個span的.help-block為提示信息;第二個span加上後面的一長串類名,是為了在輸入框後面提示不同的圖標,其中.form-control-feedback必須和div的.has-feedback一同使用,不然圖標不能顯示在輸入框內部。
總結:以上介紹了表單的不同顯示樣式,以及表單的具體的一些標簽,個人覺得作為框架,最主要的是它的嵌套結構,在用時需要知道哪個標簽裡嵌套哪個標簽。想要不同的風格,可以加入自己的css樣式,總之靈活運用吧!