在本教程中,您将学习如何使用 Bootstrap 2.0 工具包来创建表单。
Bootstrap 已经为 input、textarea 和 select 等表单控件定义样式,支持列表和复选框,为禁用的表单控件定义样式,包括每个表单控件的错误、警告、成功状态。
自版本 2.0 起,Bootstrap 提供了四中类型的表单布局 -
在 Bootstrap 的上一个版本中,表单布局默认是水平布局。但是,自版本 2.0 起,垂直布局是默认布局。
为 bootstrap.css 中 .form-vertical class 的 Bootstrap 默认表单布局(即垂直表单)定义样式。但是由于这是默认表单布局,在通过默认布局创建表单的时候,不需要规定 .form-vertical class。下面的实例演示一个通过 Bootstrap 2.0 默认表单布局创建的表单。
.well class 用于创建表单的容器(当然,它还有其他用途)。这个 class 可在 bootstrap.css 中行号 1650 到 1663 找到。对于这个布局,输入框是块级的(block level)。下面的实例演示如何使用 Bootstrap 创建一个默认表单布局。
< form class = "well" > < label >标签名称</ label > < input type = "text" class = "span3" placeholder = "Type something…" > < span class = "help-inline" >相关帮助文档 !</ span > < label class = "checkbox" > < input type = "checkbox" > 选中我 </ label > < button type = "submit" class = "btn" >提交</ button > </ form > |
使用位于 bootstrap.css 中行号为 962 到 1003 (这些行也包含了 .form-inline 的样式)的 .form-search class,来创建一个搜索表单。对于这个布局,输入框是块级的(block level)。下面是一个实例:
< form class = "well form-search" > < input type = "text" class = "input-medium search-query" > < button type = "submit" class = "btn" >搜索</ button > </ form > |
使用位于 bootstrap.css 中行号为 962 到 1003 (这些行也包含了 .form-search 的样式)的 .form-inline class,来创建一个内联表单。对于这个布局,输入框是内联的(inline)。下面是一个实例:
< form class = "well form-inline" > < input type = "text" class = "input-small" placeholder = "Email" > < input type = "password" class = "input-small" placeholder = "Password" > < label class = "checkbox" > < input type = "checkbox" > 记住我 </ label > < button type = "submit" class = "btn" >登录</ button > </ form > |
使用位于 bootstrap.css 中的 .form-horizontal class,来创建一个水平表单。对于这个布局,输入框是块级的(block level)。下面是一个实例:
< form class = "form-horizontal" > < fieldset > < legend >Bootstrap 支持的控件</ legend > < div class = "control-group" > < label class = "control-label" for = "input01" >文本输入</ label > < div class = "controls" > < input type = "text" class = "input-xlarge" id = "input01" > < p class = "help-block" >除了自由格式文本,一些HTML5基于文本的输入像这样呈现。</ p > </ div > </ div > < div class = "control-group" > < label class = "control-label" for = "optionsCheckbox" >确认框</ label > < div class = "controls" > < label class = "checkbox" > < input type = "checkbox" id = "optionsCheckbox" value = "option1" > 选中选项,确认此项正确。 </ label > </ div > </ div > < div class = "control-group" > < label class = "control-label" for = "select01" >选择列表</ label > < div class = "controls" > < select id = "select01" > < option >something</ option > < option >2</ option > < option >3</ option > < option >4</ option > < option >5</ option > </ select > </ div > </ div > < div class = "control-group" > < label class = "control-label" for = "multiSelect" >多选</ label > < div class = "controls" > < select multiple = "multiple" id = "multiSelect" > < option >1</ option > < option >2</ option > < option >3</ option > < option >4</ option > < option >5</ option > </ select > </ div > </ div > < div class = "control-group" > < label class = "control-label" for = "fileInput" >文件上传</ label > < div class = "controls" > < input class = "input-file" id = "fileInput" type = "file" > </ div > </ div > < div class = "control-group" > < label class = "control-label" for = "textarea" >文本区域</ label > < div class = "controls" > < textarea class = "input-xlarge" id = "textarea" rows = "3" ></ textarea > </ div > </ div > < div class = "form-actions" > < button type = "submit" class = "btn btn-primary" >保存修改</ button > < button class = "btn" >取消</ button > </ div > </ fieldset > </ form > |
当输入字段获得焦点或者输入字段被禁用或者字段只读时,Bootstrap 已经为这些定义样式。在 bootstrap.css 中从行号 677 到 697,为获得焦点的输入框和输入域元素定义了样式。
首先,Webkit "outline" 作为 ":focus" 的值使用,但是现在已经变为 " box-shadow"。
下面是一个实例,展示了获得焦点的输入框、只读的输入框、禁用的输入框、禁用的复选框和禁用的按钮的样式如何改变。
< form class = "form-horizontal" > < fieldset > < legend >Bootstrap支持的控件</ legend > < div class = "control-group" > < label class = "control-label" for = "input01" >焦点输入</ label > < div class = "controls" > < input type = "text" class = "input-xlarge" id = "input01" > < p class = "help-block" >除了自由格式文本,一些HTML5基于文本的输入像这样呈现。</ p > </ div > </ div > < div class = "control-group" > < label class = "control-label" for = "input01" >只读输入</ label > < div class = "controls" > < input type = "text" class = "input-xlarge" id = "input01" readonly = "true" > < p class = "help-block" >除了自由格式文本,一些HTML5基于文本的输入像这样呈现。</ p > </ div > </ div > < div class = "control-group" > < label class = "control-label" for = "input01" >禁用输入</ label > < div class = "controls" > < input type = "text" class = "input-xlarge" id = "input01" disabled> < p class = "help-block" >除了自由格式文本,一些HTML5基于文本的输入像这样呈现。</ p > </ div > </ div > < div class = "control-group" > < label class = "control-label" for = "optionsCheckbox" reado>确认框 (禁用)</ label > < div class = "controls" > < label class = "checkbox" > < input type = "checkbox" id = "optionsCheckbox" value = "option1" disabled> 选中选项,确认此项正确。 </ label > </ div > </ div > < div class = "form-actions" > < button type = "submit" class = "btn btn-primary" disabled>保存修改 (禁用按钮)</ button > < button class = "btn" >取消</ button > </ div > </ fieldset > </ form > |
Bootstrap 2.0 可以为验证表单时的错误、警告、成功状态定义样式。这是很好的特性,由于当用户提交表单数据发生错误时,或者需要生成一个警告时,甚至是通知用户已经成功提交数据时,需要向用户展示不同的样式。
这里有一个实例:
< form class = "form-horizontal" > < fieldset > < legend >表单验证错误,警告或成功</ legend > < div class = "control-group error" > < label class = "control-label" for = "inputError" >输入错误</ label > < div class = "controls" > < input type = "text" id = "inputError" > < span class = "help-inline" >请纠正错误</ span > </ div > </ div > < div class = "control-group warning" > < label class = "control-label" for = "inputWarning" >输入警告</ label > < div class = "controls" > < input type = "text" id = "inputWarning" > < span class = "help-inline" >出现一些错误</ span > </ div > </ div > < div class = "control-group success" > < label class = "control-label" for = "inputSuccess" >成功输入</ label > < div class = "controls" > < input type = "text" id = "inputSuccess" > < span class = "help-inline" >成功输入</ span > </ div > </ div > < div class = "control-group success" > < label class = "control-label" for = "selectError" >选择成功</ label > < div class = "controls" > < select id = "selectError" > < option >1</ option > < option >2</ option > < option >3</ option > < option >4</ option > < option >5</ option > </ select > < span class = "help-inline" >选择成功</ span > </ div > </ div > </ fieldset > </ form > |