完全深入学习Bootstrap表单


Posted in Javascript onNovember 28, 2016

前言:由于表单的元素比较多,因此将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样式,总之灵活运用吧!

Javascript 相关文章推荐
给moz-firefox下添加IE方法和属性
Apr 10 Javascript
js实现网页自动刷新可制作节日倒计时效果
May 27 Javascript
javascript排序函数实现数字排序
Jun 26 Javascript
JS判断页面是否出现滚动条的方法
Jul 17 Javascript
js编写当天简单日历效果【实现代码】
May 03 Javascript
Bootstrap Validator 表单验证
Jul 25 Javascript
KnockoutJS 3.X API 第四章之click绑定
Oct 10 Javascript
jq给页面添加覆盖层遮罩的实例
Feb 16 Javascript
js使用xml数据载体实现城市省份二级联动效果
Nov 08 Javascript
vue组件间的参数传递实例详解
Apr 26 Javascript
layui问题之模拟table表格中的选中按钮选中事件的方法
Sep 20 Javascript
JavaScript定时器使用方法详解
Mar 26 Javascript
EasyUI Combobox设置默认值 获取text的方法
Nov 28 #Javascript
Bootstrap选项卡动态切换效果
Nov 28 #Javascript
js简单正则验证汉字英文及下划线的方法
Nov 28 #Javascript
Bootstrap实现导航栏的2种方式
Nov 28 #Javascript
jQuery扩展实现text提示还能输入多少字节的方法
Nov 28 #Javascript
Bootstrap框架实现广告轮播效果
Nov 28 #Javascript
ReactJs快速入门教程(精华版)
Nov 28 #Javascript
You might like
Protoss兵种对照表
2020/03/14 星际争霸
PHP写的加密函数,支持私人密钥(详细介绍)
2013/06/09 PHP
php实现QQ空间获取当前用户的用户名并生成图片
2015/07/25 PHP
php实现的数字验证码及数字运算验证码
2015/07/30 PHP
一个js封装的不错的选项卡效果代码
2008/02/15 Javascript
javascript globalStorage类代码
2009/06/04 Javascript
基于jquery的cookie的用法
2011/01/10 Javascript
passwordStrength 基于jquery的密码强度检测代码使用介绍
2011/10/08 Javascript
jquery 获取自定义属性(attr和prop)的实现代码
2012/06/27 Javascript
Jquery动态更改一张位图的src与Attr的使用
2013/07/31 Javascript
IE8下jQuery改变png图片透明度时出现的黑边
2015/08/30 Javascript
Bootstrap入门书籍之(五)导航条、分页导航
2016/02/17 Javascript
javascript先序遍历DOM树的方法
2016/02/27 Javascript
javascript淘宝主图放大镜功能
2016/10/20 Javascript
详解webpack+gulp实现自动构建部署
2017/06/29 Javascript
开发一个Parcel-vue脚手架工具(详细步骤)
2018/09/22 Javascript
JavaScript查看代码运行效率console.time()与console.timeEnd()用法
2019/01/18 Javascript
vue实现点击按钮“查看详情”弹窗展示详情列表操作
2020/09/09 Javascript
JS绘图Flot如何实现可选显示曲线图功能
2020/10/16 Javascript
php使用递归与迭代实现快速排序示例
2014/01/23 Python
python编程开发之类型转换convert实例分析
2015/11/13 Python
Python 逐行分割大txt文件的方法
2017/10/10 Python
python设定并获取socket超时时间的方法
2019/01/12 Python
详解利用OpenCV提取图像中的矩形区域(PPT屏幕等)
2019/07/01 Python
详解Flask前后端分离项目案例
2020/07/24 Python
python使用matplotlib:subplot绘制多个子图的示例
2020/09/24 Python
HTML 5 标签、属性、事件及浏览器兼容性速查表 附打包下载
2012/10/20 HTML / CSS
鞋子女王塔玛拉·梅隆同名奢侈品牌:Tamara Mellon
2017/11/22 全球购物
Linux内核的同步机制是什么?主要有哪几种内核锁
2013/01/03 面试题
授权委托书样本及填写说明
2014/09/19 职场文书
大学生个人学年总结
2015/02/15 职场文书
师范生教育见习总结
2015/06/23 职场文书
2015年国庆节演讲稿范文
2015/07/30 职场文书
2017公司年会主持人开幕词
2016/03/04 职场文书
小学五年级(说明文3篇)
2019/08/13 职场文书
微信小程序中使用vant框架的具体步骤
2022/02/18 Javascript