1 表单 1)基本表单 Bootstrap 为单独的表单元素预定义了全局样式,表单内元素的具体使用如下:
设置了 .form-control 类的 <input>、<textarea> 和 <select> 元素都将被默认设置宽度属性为 width: 100%;。
将 label 元素和前面提到的控件包裹在 .form-group 中可以获得最好的排列。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 <div class ="container" > <div class ="row" > <form > <div class ="form-group" > <label for ="exampleInputEmail1" > Email address</label > <input type ="email" class ="form-control" id ="exampleInputEmail1" placeholder ="Email" > </div > <div class ="form-group" > <label for ="exampleInputPassword1" > Password</label > <input type ="password" class ="form-control" id ="exampleInputPassword1" placeholder ="Password" > </div > <button type ="submit" class ="btn btn-default" > Submit</button > </form > </div > </div >
2)内联表单 为 <form> 元素添加 .form-inline 类可使其内容左对齐并且表现为 inline-block 级别的控件。
只适用于 viewport 至少在 768px 宽度时(视口宽度再小的话就会使表单折叠)。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 <div class ="container" > <div class ="row" > <form class ="form-inline" > <div class ="form-group" > <label for ="exampleInputName2" > Name</label > <input type ="text" class ="form-control" id ="exampleInputName2" placeholder ="Jane Doe" > </div > <div class ="form-group" > <label for ="exampleInputEmail2" > Email</label > <input type ="email" class ="form-control" id ="exampleInputEmail2" placeholder ="[email protected] " > </div > <button type ="submit" class ="btn btn-default" > Send invitation</button > </form > </div > </div >
需要注意的是:
在内联表单,我们将这些元素的宽度设置为 width: auto;,因此,多个控件可以排列在同一行。
如果你没有为每个输入控件设置 label 标签,屏幕阅读器将无法正确识别。对于这些内联表单,你可以通过为 label 设置 .sr-only 类将其隐藏。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 <div class ="container" > <div class ="row" > <form class ="form-inline" > <div class ="form-group" > <label class ="sr-only" for ="exampleInputEmail3" > Email address</label > <input type ="email" class ="form-control" id ="exampleInputEmail3" placeholder ="Email" > </div > <div class ="form-group" > <label class ="sr-only" for ="exampleInputPassword3" > Password</label > <input type ="password" class ="form-control" id ="exampleInputPassword3" placeholder ="Password" > </div > <button type ="submit" class ="btn btn-default" > Sign in</button > </form > </div > </div >
3)水平排列的表单 通过为表单添加 .form-horizontal 类,并联合使用 Bootstrap 预置的栅格类,可以将 label 标签和控件组水平并排布局。
这样做将改变 .form-group 的行为,使其表现为栅格系统中的行(row),因此就无需再额外添加 .row 了。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 <div class ="container" > <div class ="row" > <form class ="form-horizontal" > <div class ="form-group" > <label for ="inputEmail3" class ="col-sm-2 control-label" > Email</label > <div class ="col-sm-10" > <input type ="email" class ="form-control" id ="inputEmail3" placeholder ="Email" > </div > </div > <div class ="form-group" > <label for ="inputPassword3" class ="col-sm-2 control-label" > Password</label > <div class ="col-sm-10" > <input type ="password" class ="form-control" id ="inputPassword3" placeholder ="Password" > </div > </div > <div class ="form-group" > <div class ="col-sm-offset-2 col-sm-10" > <button type ="submit" class ="btn btn-default" > Sign in</button > </div > </div > </form > </div > </div >
4)单选框和多选框 a. 默认外观
单选框使用 class 为 .radio
多选框使用 class 为 .checkbox
单选框或多选框的样式要定义在 div 元素中(该元素作为容器元素,包含文本和单选或多选框元素)。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 <div class ="container" > <div class ="row" > <form > <div class ="checkbox" > <label > <input type ="checkbox" value ="" > Option one is this and that— be sure to include why it's great </label > </div > <div class ="checkbox disabled" > <label > <input type ="checkbox" value ="" disabled > Option two is disabled </label > </div > <div class ="radio" > <label > <input type ="radio" name ="optionsRadios" id ="optionsRadios1" value ="option1" checked > Option one is this and that— be sure to include why it's great </label > </div > <div class ="radio" > <label > <input type ="radio" name ="optionsRadios" id ="optionsRadios2" value ="option2" > Option two can be something else and selecting it will deselect option one </label > </div > <div class ="radio disabled" > <label > <input type ="radio" name ="optionsRadios" id ="optionsRadios3" value ="option3" disabled > Option three is disabled </label > </div > </form > </div > </div >
b. 内联单选和多选框 通过将 .checkbox-inline 或 .radio-inline 类应用到一系列的多选框(checkbox)或单选框(radio)控件上,可以使这些控件排列在一行。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 <div class ="container" > <div class ="row" > <form > <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 ="inlineRadioOptions" id ="inlineRadio1" value ="option1" > 1 </label > <label class ="radio-inline" > <input type ="radio" name ="inlineRadioOptions" id ="inlineRadio2" value ="option2" > 2 </label > <label class ="radio-inline" > <input type ="radio" name ="inlineRadioOptions" id ="inlineRadio3" value ="option3" > 3 </label > </form > </div > </div >