摘要:bootstrap提供了三种表单布局:垂直表单,内联表单和水平表单。本文主要对这三种表单布局做一下基础的介绍,以及对表单控件做简要概括。

1.垂直表单

垂直表单也称基础表单。其基本结构如下:

  1. <form role="form">
  2. <div class="form-group">
  3. <label for="name">用户名</label>
  4. <input class="form-control" id="name" type="text">
  5. </div>
  6. <div class="form-group">
  7. <label for="name">年龄</label>
  8. <input class="form-control" id="name" type="number">
  9. </div>
  10. <div class="form-group">
  11. ...
  12. </div>
  13. ...
  14. </form>

结果显示如下(呈垂直状态):

其中,向所有的文本元素<input>、<textarea>、<select>添加 .form-control 类。以便获得相应的样式。读者可自行去掉该类,查看变化(圆角,宽度,边框阴影)。

2. 内联表单

内联表单的所有元素都是内联的,向左对齐,标签并排。其基本结构如下:

注意代码第一行<form>标签中类的变化

  1. <form role="form" class="form-inline">
  2. <div class="form-group">
  3. <label>名称</label>
  4. <input class="form-control" type="text" placeholder="请输入您的名称">
  5. </div>
  6. <div class="form-group">
  7. <label for="name">年龄</label>
  8. <input class="form-control" id="name" type="number" placeholder="请输入您的年龄">
  9. </div>
  10. <div class="form-group">
  11. ...
  12. </div>
  13. ...
  14. </form>

结果显示如下(标签是并排的,向左对齐):

另外,可以向上面代码中的<label>标签中加入类 .sr-only,隐藏内联表单的标签 。即隐藏 “名称” 和 “年龄”

3.水平表单

水平表单创建比以上两种表单复杂,但是了解其基本结构之后也比较容易掌握。基本结构如下:

注意<form>标签中类的变化! form-horizontal

  1. <form role="form" class="form-horizontal">
  2. <div class="form-group">
  3. <label for="name" class="control-label col-md-2">姓名:</label>
  4. <div class="col-md-10">
  5. <input class="form-control" id="name" type="text">
  6. </div>
  7. </div>
  8. <div class="form-group">
  9. <label for="age" class="control-label col-md-2">年龄:</label>
  10. <div class="col-md-10">
  11. <input class="form-control" id="age" type="number">
  12. </div>
  13. </div>
  14. <div class="form-group">
  15. <label class="control-label col-md-2">性别:</label>
  16. <div class="col-md-10">
  17. <div class="radio">
  18. <label class="control-label"><input type="radio" name="optionsRadios" value="man"></label>
  19. <label class="control-label"><input type="radio" name="optionsRadios" value="woman"></label>
  20. </div>
  21. </div>
  22. </div>
  23. ...
  24. </form>

结果显示如下(呈水平状态):

需要注意的是,在水平表单中,要向<label>标签添加 class="control-label" 类。

4. 支持的表单控件

4.1 输入框

  输入框input是最常见的表单文本字段。bootstrap支持所有的原声html5的input类型。其中有: text、password、datetime、datetime-local、date、month、time、week、number、email、url、search、tel以及color。

  1. <form class="form-horizontal">
  2. <div class="form-group">
  3. <label class="control-label col-md-2">输入框1</label>
  4. <div class="col-md-10">
  5. <input type="text" class="form-control" placeholder="text">
  6. </div>
  7. </div>
  8. <div class="form-group">
  9. <label class="control-label col-md-2">密码</label>
  10. <div class="col-md-10">
  11. <input type="password" class="form-control" placeholder="password">
  12. </div>
  13. </div>
  14. <div class="form-group">
  15. <label class="control-label col-md-2">日期date</label>
  16. <div class="col-md-10">
  17. <input type="date" class="form-control">
  18. </div>
  19. </div>
  20. <div class="form-group">
  21. <label class="control-label col-md-2">日期datetime-local</label>
  22. <div class="col-md-10">
  23. <input type="datetime-local" class="form-control">
  24. </div>
  25. </div>
  26. ...
  27. </form>

结果如下,日期是可以自己选择的:

4.2 文本框(textarea)

文本框支持多行输入,可以根据其属性 rows 来控制文本框的大小。另外爱bootstrap框架中要对齐使用类 .form-control

代码举例:

  1. <form role="form">
  2. <div class="form-group">
  3. <label>3行的文本框</label>
  4. <textarea class="form-control" rows="3" placeholder="三行的输入框"></textarea>
  5. </div>
  6. </form>

结果显示如下:

4.3 复选框(checkbox ) 和  单选框( radio)

复选框(checkbox )可以选取多个选项,单选框( radio)只能选中一个选项。下面包括默认的和内联(checkbox-inline)的复选和单选的实例,具体的用法:

  1. <form role="form">
  2. <div class="form-group">
  3. <div class="checkbox">
  4. <label><input type="checkbox" value="">选项1<label>
  5. </div>
  6. <div class="checkbox">
  7. <label><input type="checkbox" value="">选项2</label>
  8. </div>
  9. <div class="checkbox">
  10. <label><input type="checkbox" value="">选项3</label>
  11. </div>
  12. <div class="radio">
  13. <label><input type="radio" name="optionsRadios" value="">选项1</label>
  14. </div>
  15. <div class="radio">
  16. <label><input type="radio" name="optionsRadios" value="">选项2</label>
  17. </div>
  18. </div>
  19. <div class="form-group">
  20. <label class="checkbox-inline">
  21. <input type="checkbox" value="">选项1
  22. </label>
  23. <label class="checkbox-inline">
  24. <input type="checkbox" value="">选项2
  25. </label>
  26. <label class="checkbox-inline">
  27. <input type="checkbox" value="">选项3
  28. </label>
  29.  
  30. <label class="checkbox-inline">
  31. <input type="radio" name="optionsRadios">选项1
  32. </label>
  33. <label class="checkbox-inline">
  34. <input type="radio" name="optionsRadios">选项2
  35. </label>
  36. </div>
  37. </form>

结果显示如下,水平排列的属于内联模式:

4.4 选择框(select)

多选一,或者多选多都可以使用选择框select、下面给出一个实例

  1. <form role="form">
  2. <div class="form-group">
  3. <label for="name">选择列表</label>
  4. <select class="form-control" id="name">
  5. <option>选项1</option>
  6. <option>选项2</option>
  7. <option>选项3</option>
  8. <option>选项4</option>
  9. </select>
  10.  
  11. <label for="multi">多选列表</label>
  12. <select class="form-control" id="multi" multiple>
  13. <option>选项1</option>
  14. <option>选项2</option>
  15. <option>选项3</option>
  16. <option>选项4</option>
  17. </select>
  18. </div>
  19. </form>

结果显示如下:

4.5 静态控件(.form-control-static)

静态控件主要用于在一个水平表单内的表单标签后放置纯文本。实例如下:

  1. <form class="form-horizontal" role="form">
  2. <div class="form-group">
  3. <label class="col-sm-2 control-label">有限</label>
  4. <div class="col-sm-10">
  5. <p class="form-control-static">email123@example.com</p>
  6. </div>
  7. </div>
  8. <div class="form-group">
  9. <label for="inputPassword" class="col-sm-2 control-label">密码</label>
  10. <div class="col-sm-10">
  11. <input type="password" class="form-control" id="inputPassword" placeholder="请输入密码">
  12. </div>
  13. </div>
  14. </form>

结果显示如下:

4.6 表单控件状态

表单控件状态主要有,输入框聚焦,输入框禁用( input disabled)、字段集禁用(fieldset disabled)以及验证状态(has-error、has-warning、has-success)。

实例如下:

  1. <form role="form" class="form-horizontal">
  2. <div class="form-group">
  3. <label class="control-label col-md-2">聚焦</label>
  4. <div class="col-md-10">
  5. <input type="text" class="form-control" placeholder="鼠标点击聚焦查看效果">
  6. </div>
  7. </div>
  8. <div class="form-group">
  9. <label class="col-md-2 control-label">禁用的输入框</label>
  10. <div class="col-md-10">
  11. <input type="text" class="form-control"
  12. placeholder="该输入框禁用<input type='text' class='form-control' disabled >" disabled>
  13. </div>
  14. </div>
  15. <p>以下两个控件属于fieldset内的</p>
  16. <fieldset disabled>
  17. <div class="form-group">
  18. <label class="control-label col-md-2">禁止输入(fieldset-disabled)</label>
  19. <div class="col-md-10">
  20. <input class="form-control" type="text" placeholder="禁止输入<fieldset disabled>">
  21. </div>
  22. </div>
  23. <div class="form-group">
  24. <label class="control-label col-md-2">禁止选择(fieldset-disabled)</label>
  25. <div class="col-md-10">
  26. <select class="form-control">
  27. <option>禁止选择</option>
  28. <option>禁止选择2</option>
  29. </select>
  30. </div>
  31. </div>
  32. </fieldset>
  33. <div class="form-group has-warning">
  34. <label class="col-md-2 control-label">输入警告</label>
  35. <div class="col-md-10">
  36. <input class="form-control" type="text" placeholder="输入警告<div class='form-control has-warning'>">
  37. </div>
  38. </div>
  39. <div class="form-group has-success">
  40. <label class="col-md-2 control-label">输入成功</label>
  41. <div class="col-md-10">
  42. <input class="form-control" type="text" placeholder="输入成功<div class='form-control has-success'>">
  43. </div>
  44. </div>
  45. <div class="form-group has-error">
  46. <label class="col-md-2 control-label">输入错误</label>
  47. <div class="col-md-10">
  48. <input class="form-control" type="text" placeholder="输入错误<div class='form-control has-error'>">
  49. </div>
  50. </div>
  51.  
  52. </form>

结果显示如下:

4.7 表单控件大小

使用class.input-lg 和.col-lg-*设置表单的高度喝宽度,实例如下:

  1. <form role="form">
  2. <div class="form-group">
  3. <input class="form-control input-lg" placeholder=".input-lg">
  4. </div>
  5. <div class="form-group">
  6. <input class="form-control input-md" placeholder=".input-md">
  7. </div>
  8. <div class="form-group">
  9. <input class="form-control input-xs" placeholder=".input-xs">
  10. </div>
  11. <div class="form-group">
  12. <input class="form-control input-sm" placeholder=".input-sm">
  13. </div>
  14. <div class="row">
  15. <div class="col-lg-3">
  16. <input type="text" class="form-control" placeholder=".col-lg-3">
  17. </div>
  18. <div class="col-lg-5">
  19. <input type="text" class="form-control" placeholder=".col-lg-5">
  20. </div>
  21. <div class="col-lg-7">
  22. <input type="text" class="form-control" placeholder=".col-lg-7">
  23. </div>
  24. </div>
  25. </form>

结果显示如下:

从上图中可以看到.col-lg-*并没有改变表单元素的宽度。原因待查!

4.8 表单帮助文本(.help-block)

bootstrap表单控件可以在输入框input上有一个块级帮助文本。为了使该文本与输入框等宽,请在input后使用.help-block.实例如下:

  1. <form role="form">
  2. <div class="form-group">
  3. <label for="name">用户名</label>
  4. <input class="form-control" id="name" type="text">
  5. </div>
  6. <div class="form-group">
  7. <label for="name">年龄</label>
  8. <input class="form-control" id="name" type="number">
  9. </div>
  10. <div class="form-group">
  11. <label>性别:</label>
  12. <div class="radio">
  13. <label>
  14. <input type="radio" name="optionsRadios" value="man">
  15. </label>
  16. </div>
  17. <div class="radio">
  18. <label>
  19. <input type="radio" name="optionsRadios" value="woman">
  20. </label>
  21. </div>
  22. </div>
  23. <div class="from-group">
  24. <label for="pic">请上传一张头像</label>
  25. <input type="file" id="pic">
  26. <p class="help-block">该照片的大小不超过50M,请选择照片是自行处理</p>
  27. </div>
  28. <div class="form-group">
  29. <button type="submit" class="btn btn-primary">注册</button>
  30. </div>
  31. </form>

结果显示如下,浅颜色的字体即为帮助文本:

5.总结

在表单内加入<div class="form-group">...</div>,可以使控件之间留有适当的距离。

向所有的文本元素<input>、<textarea>、和<select>添加 .form-control

5.1 父<form>元素

  垂直表单:<form role="form">。标签和控件放在<div class="form-group">...</div>中

  内联表单:<form class="form-inline" role="form">.

  水平表单:<form class="form-horizontal" role="form">. 内部通过.col-md-*来分布每个<div class="form-      group">...</div>每列占用的列数。向标签<label>添加类 .control-label

5.2 输入框支持类型

input中的type可以是以下几种:

text、password、datetime、datetime-local、date、month、time、week、number、email、url、search、tel、color

5.3 文本框通过rows调整大小

5.4 复选框和单选按钮

一共有两种形式:默认的和内联的(checkbox-inline)。

5.5 选择框(select)

  多选一,多选多(multiple)

5.6 静态控件:

  <p class="form-control-static">文本内容</p>

5.7 控件状态

禁用:disabled

  验证状态:has-warning、has-error、has-success。包含在<div class="form-group has-warning">.因为字体也要跟着变化。

5.8 控件大小

利用.input-lg、.input-md、.input-xs、.input-sm来调整控件的高度。

利用.col-lg-* 、.col-md-*、.col-sm-*、col-xs-*来调整宽度(暂时没有生效,可能是我用法不对,原因待查)

5.9 帮助文本

在输入框之后使用 .help-block

Bootstrsp 表单的更多相关文章

  1. ASP.NET Aries 入门开发教程9:业务表单的开发

    前言: 经过前面那么多篇的列表的介绍,终于到了大伙期待的表单开发了. 也是本系列的最后一篇文章了! 1:表单页面的权限设置与继承 对于表单页面,权限的设置有两种: 1:你可以选择添加菜单(设置为不显示 ...

  2. 探索ASP.NET MVC5系列之~~~3.视图篇(下)---包含常用表单和暴力解猜防御

    其实任何资料里面的任何知识点都无所谓,都是不重要的,重要的是学习方法,自行摸索的过程(不妥之处欢迎指正) 汇总:http://www.cnblogs.com/dunitian/p/4822808.ht ...

  3. jQuery学习之路(8)- 表单验证插件-Validation

    ▓▓▓▓▓▓ 大致介绍 jQuery Validate 插件为表单提供了强大的验证功能,让客户端表单验证变得更简单,同时提供了大量的定制选项,满足应用程序各种需求.该插件捆绑了一套有用的验证方法,包括 ...

  4. jQuery学习之路(5)- 简单的表单应用

    ▓▓▓▓▓▓ 大致介绍 接下来的这几个博客是对前面所学知识的一个简单的应用,来加深理解 ▓▓▓▓▓▓ 单行文本框 只介绍一个简单的样式:获取和失去焦点改变样式 基本结构: <form actio ...

  5. 12、Struts2表单重复提交

    什么是表单重复提交 表单的重复提交: 若刷新表单页面, 再提交表单不算重复提交. 在不刷新表单页面的前提下: 多次点击提交按钮 已经提交成功, 按 "回退" 之后, 再点击 &qu ...

  6. .net erp(办公oa)开发平台架构概要说明之表单设计器

    背景:搭建一个适合公司erp业务的开发平台.   架构概要图: 表单设计开发部署示例图    表单设计开发部署示例说明1)每个开发人员可以自己部署表单设计至本地一份(当然也可以共用一套开发环境,但是如 ...

  7. javascript表单的Ajax 提交插件的使用

    Ajax 提交插件 form.js 表单的下载地址:官方网站:http://malsup.com/jquery/form/ form.js 插件有两个核心方法:ajaxForm()和ajaxSubmi ...

  8. 玩转spring boot——AOP与表单验证

    AOP在大多数的情况下的应用场景是:日志和验证.至于AOP的理论知识我就不做赘述.而AOP的通知类型有好几种,今天的例子我只选一个有代表意义的“环绕通知”来演示. 一.AOP入门 修改“pom.xml ...

  9. from表单提交数据之后,后台对象接受不到值

    如果SSH框架下,前段页面通过from表单提交数据之后,在后台对象显示空值,也就是接收不到值得情况下.首先保证前段输入框有值,这个可以在提交的时候用jQuery的id或者name选择器alert弹出测 ...

随机推荐

  1. 解决xadmin登录卡顿延迟的问题

    我的django项目引入xadmin作为后台,之前登录一直很快,今天突然怎么也登录不了. 怀疑是xadmin请求了网络资源,当我断网再次登录,果然进去了. 然后在xadmin文件夹右键-find in ...

  2. ubuntu 禁用自带的nouveau显卡驱动,安装NVIDIA显卡驱动

    下载显卡驱动 进入Nvidia的官网,找到对应GTX 750显卡的Linux 64-bit 的驱动程序,然后下载 当点击下载链接后,发现浏览器一直在加载那个*.run文件,很久都加载不完.这时将浏览器 ...

  3. caffe中 softmax 函数的前向传播和反向传播

    1.前向传播: template <typename Dtype> void SoftmaxLayer<Dtype>::Forward_cpu(const vector< ...

  4. 如何在linux系统下配置无线网卡?【转】

    转自:http://www.jb51.net/LINUXjishu/61315.html 本文介绍在Linux 命令行界面中手动配置无线网卡的方法.目前流行的多数发行版都支持用图形界面的network ...

  5. 云服务器 linux文件系统异常an error occurren during the file system check导致服务器启动失败

    云服务器 linux文件系统异常an error occurren during the file system check导致服务器启动失败 文件系统宕机,重启后报错,无法启动 处理流程: 1.编辑 ...

  6. openvpn用户管理、linux客户端配置及企业常用真实案例解析

    1.给企业用户分配VPN账户的流程: 添加拨号需要密码的用户 # source vars NOTE: If you run ./clean-all, I will be doing a rm -rf ...

  7. 编译安装lamp环境

    httpd 2.4.9 + mysql-5.5.33 + php-5.4.29编译安装过程: 准备好以下安装包: mysql-5.5.33-linux2.6-x86_64.tar.gz apr-uti ...

  8. Uiautomator之入门

    优点:1.可以对所有操作进行自动化,操作简单: 2.不需要对被测程序进行重签名,且,可以测试所有设备上的程序,比如~某APP,比如~拨号,比如~发信息等等    3.对于控件定位,要比robotium ...

  9. linux下各目录的作用

    这么久了,一直觉得对于linux的运作情况还是懵懵懂懂的样子,刚才专门又看了一下 linux 下各目录的作用,记下来,以备以后再忘了. 下面内容来自:http://www.linuxidc.com/L ...

  10. 采用busybox 代替android 自带的shell

    折腾了几天,被Android那点儿少得可怜的shell命令折磨的死去活来,终于下定了革命的决心.看一下怎么把渺小的toolbox替换成伟大的busybox吧.先大致描述一下Android系统中的she ...