Bootstrap<表单>

来源:互联网 发布:小牛学堂大数据就业班 编辑:程序博客网 时间:2024/05/16 01:26

1.基础表单(垂直表单)

表单主要功能是用来与用户做交流的一个网页控件,良好的表单设计能够让网页与用户更好的沟通。表单中常见的元素主要包括:文本输入框下拉选择框、单选按钮、复选按钮文本域按钮等。其中每个控件所起的作用都各不相同,而且不同的浏览器对表单控件渲染的风格都各有不同。

同样,表单也是Bootstrap框架中的核心内容,下面向大家介绍Bootstrap框架中表单的制作。对于基础表单,Bootstrap并未对其做太多的定制性效果设计,仅仅对表单内的fieldsetlegendlabel标签进行了定制。如:

fieldset {min-width: 0;padding: 0;margin: 0;border: 0;}legend {display: block;width: 100%;padding: 0;margin-bottom: 20px;font-size: 21px;line-height: inherit;color: #333;border: 0;border-bottom: 1px solid #e5e5e5;}label {display: inline-block;margin-bottom: 5px;font-weight: bold;}

主要将这些元素的marginpaddingborder等进行了细化设置。

当然表单除了这几个元素之外,还有inputselecttextarea等元素,在Bootstrap框架中,通过定制了一个类名`form-control`,也就是说,如果这几个元素使用了类名“form-control”,将会实现一些设计上的定制效果。

1、宽度变成了100%

2、设置了一个浅灰色(#ccc)的边框

3、具有4px的圆角

4、设置阴影效果,并且元素得到焦点之时,阴影和边框效果会有所变化

5、设置了placeholder的颜色为#999


<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>
  <div class="checkbox">
    <label>
      <input type="checkbox"> 记住密码
    </label>
  </div>
  <button type="submit" class="btn btn-default">进入邮箱</button>
</form>

运行效果如下或查看右侧结果窗口:


2.水平表单

Bootstrap框架默认的表单是垂直显示风格,但很多时候我们需要的水平表单风格标签居左,表单控件居右)见下图。

在Bootstrap框架中要实现水平表单效果,必须满足以下两个条件:
1、在<form>元素是使用类名“form-horizontal”。
2、配合Bootstrap框架的网格系统。(网格布局会在以后的章节中详细讲解)

<form>元素上使用类名“form-horizontal”主要有以下几个作用:
1、设置表单控件padding和margin值。
2、改变“form-group”的表现形式,类似于网格系统的“row”。

/*源码请查阅bootstrap.css文件第1963行~第1991行*/

.form-horizontal .control-label,.form-horizontal .radio,.form-horizontal .checkbox,.form-horizontal .radio-inline,.form-horizontal .checkbox-inline {padding-top: 7px;margin-top: 0;margin-bottom: 0;}.form-horizontal .radio,.form-horizontal .checkbox {min-height: 27px;}.form-horizontal .form-group {margin-right: -15px;margin-left: -15px;}.form-horizontal .form-control-static {padding-top: 7px;}@media (min-width: 768px) {.form-horizontal .control-label {text-align: right;  }}.form-horizontal .has-feedback .form-control-feedback {top: 0;right: 15px;}


<form class="form-horizontal" role="form">
<div class="form-group">
  <label for="inputEmail3" class="col-sm-2 control-label">邮箱</label>
  <input type="email" class="form-control" id="inputEmail3" placeholder="请输入您的邮箱地址">
  </div>
  <div class="form-group">
  <label for="inputPassword3" class="col-sm-2 control-label">密码</label>
  <input type="password" class="form-control" id="inputPassword3" placeholder="请输入您的邮箱密码">
  </div>
  <div class="form-group">
  <div class="col-sm-offset-2 col-sm-10">
  <div class="checkbox">
  <label>
  <input type="checkbox">记住密码
  </label>
  </div>
  </div>
  </div>
  <div class="form-group">
  <div class="col-sm-offset-2 col-sm-10">
  <button type="submit" class="btnbtn-default">进入邮箱</button>
  </div>
</div>
</form>

运行效果如下或查看右侧结果窗口:(注意:要想看到此效果,需要把鼠标移到结果窗口,单击出现的“全屏”按钮)

 

3.内联表单

在Bootstrap框架中实现这样的表单效果是轻而易举的,你只需要在<form>元素中添加类名“form-inline”即可。
内联表单实现原理非常简单,欲将表单控件在一行显示,就需要将表单控件设置成内联块元素(display:inline-block)。

如果你要在input前面添加一个label标签时,会导致input换行显示。如果你必须添加这样的一个label标签,并且不想让input换行,你需要将label标签也放在容器“form-group”中,如:

<div class="form-group">    <label class="sr-only" for="exampleInputEmail2">Email address</label></div><div class="form-group">    <inputtype="email" class="form-control" id="exampleInputEmail2" placeholder="Enter email"></div>



<form class="form-inline" role="form">
<div class="form-group">
  <label class="sr-only" for="exampleInputEmail2">邮箱</label>
  <input type="email" class="form-control" id="exampleInputEmail2" placeholder="请输入你的邮箱地址">
  <label class="sr-only" for="exampleInputPassword2">密码</label>
  <input type="password" class="form-control" id="exampleInputPassword2" placeholder="请输入你的邮箱密码">
<label>
   <input type="checkbox">记住密码
<button type="submit" class="btnbtn-default">进入邮箱</button>
</label>
</div>
</form>

运行效果如下或查看右侧结果窗口:(查看效果需要把结果窗口设置为全屏)

回过头来看示例,你或许会问,为什么添加了label标签,而且没有放置在”form-group”这样的容器中,input也不会换行;还有label标签怎么没显示出来。如果你仔细看,在label标签运用了一个类名“sr-only”,标签没显示就是这个样式将标签隐藏了。

.sr-only {position: absolute;width: 1px;height: 1px;padding: 0;margin: -1px;overflow: hidden;clip: rect(0, 0, 0, 0);border: 0;}

4. 支持的表单控件

 4.1 输入框

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

复制代码
<form class="form-horizontal">    <div class="form-group">        <label class="control-label col-md-2">输入框1</label>        <div class="col-md-10">            <input type="text" class="form-control" placeholder="text">        </div>    </div>    <div class="form-group">        <label class="control-label col-md-2">密码</label>        <div class="col-md-10">            <input type="password" class="form-control" placeholder="password">        </div>    </div>    <div class="form-group">        <label class="control-label col-md-2">日期date</label>        <div class="col-md-10">            <input type="date" class="form-control">        </div>    </div>    <div class="form-group">        <label class="control-label col-md-2">日期datetime-local</label>        <div class="col-md-10">            <input type="datetime-local" class="form-control">        </div>    </div>         ...</form>
复制代码

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

 4.2 文本框(textarea)

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

代码举例:

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

结果显示如下:


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

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

复制代码
<form role="form">    <div class="form-group">        <div class="checkbox">            <label><input type="checkbox" value="">选项1<label>        </div>        <div class="checkbox">            <label><input type="checkbox" value="">选项2</label>        </div>        <div class="checkbox">            <label><input type="checkbox" value="">选项3</label>        </div>        <div class="radio">            <label><input type="radio" name="optionsRadios" value="">选项1</label>        </div>        <div class="radio">            <label><input type="radio" name="optionsRadios" value="">选项2</label>        </div>    </div>    <div class="form-group">        <label class="checkbox-inline">            <input type="checkbox" value="">选项1        </label>        <label class="checkbox-inline">            <input type="checkbox" value="">选项2        </label>        <label class="checkbox-inline">            <input type="checkbox" value="">选项3        </label>                <label class="checkbox-inline">            <input type="radio" name="optionsRadios">选项1        </label>        <label class="checkbox-inline">            <input type="radio" name="optionsRadios">选项2        </label>    </div></form>
复制代码

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

 4.4 选择框(select)

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

复制代码
<form role="form">    <div class="form-group">        <label for="name">选择列表</label>        <select class="form-control" id="name">            <option>选项1</option>            <option>选项2</option>            <option>选项3</option>            <option>选项4</option>        </select>                        <label for="multi">多选列表</label>        <select class="form-control" id="multi" multiple>            <option>选项1</option>            <option>选项2</option>            <option>选项3</option>            <option>选项4</option>        </select>    </div></form>
复制代码

结果显示如下:

 

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

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

复制代码
<form class="form-horizontal" role="form">     <div class="form-group">         <label class="col-sm-2 control-label">有限</label>         <div class="col-sm-10">             <p class="form-control-static">email123@example.com</p>         </div>     </div>     <div class="form-group">         <label for="inputPassword" class="col-sm-2 control-label">密码</label>         <div class="col-sm-10">             <input type="password" class="form-control" id="inputPassword" placeholder="请输入密码">         </div>     </div> </form>
复制代码

结果显示如下:

4.6 表单控件状态

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

实例如下:

复制代码
<form role="form" class="form-horizontal">    <div class="form-group">        <label class="control-label col-md-2">聚焦</label>        <div class="col-md-10">            <input type="text" class="form-control" placeholder="鼠标点击聚焦查看效果">        </div>    </div>    <div class="form-group">        <label class="col-md-2 control-label">禁用的输入框</label>        <div class="col-md-10">            <input type="text" class="form-control"             placeholder="该输入框禁用<input type='text' class='form-control' disabled >" disabled>        </div>    </div>    <p>以下两个控件属于fieldset内的</p>    <fieldset disabled>        <div class="form-group">            <label class="control-label col-md-2">禁止输入(fieldset-disabled)</label>            <div class="col-md-10">                <input class="form-control" type="text" placeholder="禁止输入<fieldset disabled>">            </div>        </div>        <div class="form-group">            <label class="control-label col-md-2">禁止选择(fieldset-disabled)</label>            <div class="col-md-10">                <select class="form-control">                    <option>禁止选择</option>                    <option>禁止选择2</option>                </select>            </div>        </div>    </fieldset>    <div class="form-group has-warning">        <label class="col-md-2 control-label">输入警告</label>        <div class="col-md-10">            <input class="form-control" type="text" placeholder="输入警告<div class='form-control has-warning'>">        </div>    </div>    <div class="form-group has-success">        <label class="col-md-2 control-label">输入成功</label>        <div class="col-md-10">            <input class="form-control" type="text" placeholder="输入成功<div class='form-control has-success'>">        </div>    </div>    <div class="form-group has-error">        <label class="col-md-2 control-label">输入错误</label>        <div class="col-md-10">            <input class="form-control" type="text" placeholder="输入错误<div class='form-control has-error'>">        </div>    </div>    </form>
复制代码

结果显示如下:


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

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

复制代码
<form role="form">
  <div class="form-group">
    <label for="name">用户名</label>
    <div class="form-group">
    <input class="form-control" id="name" type="text">
    </div>
  </div>
  <div class="form-group">
    <label for="name">年龄</label>
    <div class="form-group">
    <input class="form-control" id="name" type="number">
    </div>
  </div>
  <div class="form-group">
    <label>性别:</label>
    <div class="radio">
        <label>
            <input type="radio" name="optionsRadios" value="man">男
        </label>
    </div>
    <div class="radio">
        <label>
            <input type="radio" name="optionsRadios" value="woman">女
        </label>
    </div>
  </div>
  <div class="from-group">
    <label for="pic">请上传一张头像</label>
    <br>
    <input type="file" id="pic">
    <p class="help-block">该照片的大小不超过50M,请选择照片是自行处理</p>
  </div>
  <div class="form-group">
    <button type="submit" class="btn btn-primary">注册</button>
  </div>
</form>
复制代码

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

 


4.8表单控件(按钮)

按钮也是表单重要控件之一,制作按钮通常使用下面代码来实现:

  ☑  input[type=submit”]

  ☑  input[type=“button”]

  ☑  input[type=reset”]

  ☑  <button>

在Bootstrap框架中的按钮都是采用<button>来实现。

有关于Bootstrap中按钮如何制作,在这里不做过多阐述,因为按钮也是Bootstrap框架中核心部分之一,后面我们专门有一节内容来介绍Bootstrap的按钮。

这里先让大家看看Bootstrap的按钮长成什么样:



<!doctype html>
<html lang="en">
<head>
<style>
.btn {
padding: 6px 12px;
font-size: 14px;
line-height: 1.42857143;
text-align: center;
background-color:#3276b1;
color:#fff;
border: 1px solid #46b8da;
border-radius: 4px;
}
.btn-default { 
padding: 6px 12px;
font-size: 14px;
line-height: 1.42857143;
text-align: center;
background-color:#5cb85c;
color:#fff;
border: 1px solid #4cae4c;
border-radius: 4px;
 } 
.btn-primary { 
padding: 6px 12px;
font-size: 14px;
line-height: 1.42857143;
text-align: center;
background-color:#5bc0de;
color:#fff;
border: 1px solid #46b8da;
border-radius: 4px;
 } 
.btn-success { 
padding: 6px 12px;
font-size: 14px;
line-height: 1.42857143;
text-align: center;
background-color:#f0ad4e;
color:#fff;
border: 1px solid #eea236;
border-radius: 4px;
 }
.btn-info { 
padding: 6px 12px;
font-size: 14px;
line-height: 1.42857143;
text-align: center;
background-color:#d9534f;
color:#fff;
border: 1px solid #d43f3a;
border-radius: 4px;
 }
.btn-warning { 
padding: 6px 12px;
font-size: 14px;
line-height: 1.42857143;
text-align: center;
color:#d43f3a;
background-color:transparent;
border: 1px solid #f43d3a;
border-radius: 4px;
 }   
</style>
    <meta charset="UTF-8">
    <title>定制风格</title>
<link rel="stylesheet" href="//netdna.bootstrapcdn.com/bootstrap/3.1.1/css/bootstrap.min.css">
</head>
<body>
   <button class="btn" type="button">基础按钮.btn</button>  
   <button class="btn btn-default" type="button">默认按钮.btn-default</button> 
   <button class="btn btn-primary" type="button">主要按钮.btn-primary</button> 
   <button class="btn btn-success" type="button">成功按钮.btn-success</button> 
   <button class="btn btn-info" type="button">信息按钮.btn-info</button> 
   <button class="btn btn-warning" type="button">警告按钮.btn-warning</button> 
</body>
</html>

0 0
原创粉丝点击