响应式表格

通过把任意的 .table 包在 .table-responsive class 内,您可以让表格水平滚动以适应小型设备(小于 768px)。当在大于 768px 宽的大型设备上查看时,您将看不到任何的差别。

Bootstrap 表单

在本章中,我们将学习如何使用 Bootstrap 创建表单。Bootstrap 通过一些简单的 HTML 标记和扩展的类即可创建出不同样式的表单。

Bootstrap 提供了下列类型的表单布局:

  • 垂直表单(默认)
  • 内联表单
  • 水平表单

垂直或基本表单

基本的表单结构是 Bootstrap 自带的,个别的表单控件自动接收一些全局样式。下面列出了创建基本表单的步骤:

  • 向父 <form> 元素添加 role="form"
  • 把标签和控件放在一个带有 class .form-group 的 <div> 中。这是获取最佳间距所必需的。
  • 向所有的文本元素 <input>、<textarea> 和 <select> 添加 class .form-control
    <body>
    
    <form role="form">
       <div class="form-group">
          <label for="name">名称</label>
          <input type="text" class="form-control" id="name" 
             placeholder="请输入名称">
       </div>
       <div class="form-group">
          <label for="inputfile">文件输入</label>
          <input type="file" id="inputfile">
          <p class="help-block">这里是块级帮助文本的实例。</p>
       </div>
       <div class="checkbox">
          <label>
          <input type="checkbox"> 请打勾
          </label>
       </div>
       <button type="submit" class="btn btn-default">提交</button>
    </form>
    
    </body>

    内联表单

    如果需要创建一个表单,它的所有元素是内联的,向左对齐的,标签是并排的,请向 <form> 标签添加 class .form-inline

 

<form class="form-inline" role="form">
   <div class="form-group">
      <label class="sr-only" for="name">名称</label>
      <input type="text" class="form-control" id="name" 
         placeholder="请输入名称">
   </div>
   <div class="form-group">
      <label class="sr-only" for="inputfile">文件输入</label>
      <input type="file" id="inputfile">
   </div>
   <div class="checkbox">
      <label>
      <input type="checkbox"> 请打勾
      </label>
   </div>
   <button type="submit" class="btn btn-default">提交</button>
</form>

</body>
  • 默认情况下,Bootstrap 中的 input、select 和 textarea 有 100% 宽度。在使用内联表单时,您需要在表单控件上设置一个宽度。
  • 使用 class .sr-only,您可以隐藏内联表单的标签。

水平表单

水平表单与其他表单不仅标记的数量上不同,而且表单的呈现形式也不同。如需创建一个水平布局的表单,请按下面的几个步骤进行:

  • 向父 <form> 元素添加 class .form-horizontal
  • 把标签和控件放在一个带有 class .form-group 的 <div> 中。
  • 向标签添加 class .control-label

 

支持的表单控件

Bootstrap 支持最常见的表单控件,主要是 input、textarea、checkbox、radio 和 select

输入框(Input)

最常见的表单文本字段是输入框 input。用户可以在其中输入大多数必要的表单数据。Bootstrap 提供了对所有原生的 HTML5 的 input 类型的支持,包括:text、password、datetime、datetime-local、date、month、time、week、number、email、url、search、tel 和color。适当的 type 声明是必需的,这样才能让 input 获得完整的样式。

<form role="form">
  <div class="form-group">
    <label for="name">标签</label>
    <input type="text" class="form-control" placeholder="文本输入">
  </div>
 </form>

文本框(Textarea)

当您需要进行多行输入的时,则可以使用文本框 textarea。必要时可以改变 rows 属性(较少的行 = 较小的盒子,较多的行 = 较大的盒子)。

<form role="form">
  <div class="form-group">
    <label for="name">文本框</label>
    <textarea class="form-control" rows="3"></textarea>
  </div>
</form>

复选框(CheckBoxe)和单选框(Radio)

复选框和单选按钮用于让用户从一系列预设置的选项中进行选择。

  • 当创建表单时,如果您想让用户从列表中选择若干个选项时,请使用 checkbox。如果您限制用户只能选择一个选项,请使用radio
  • 对一系列复选框和单选框使用 .checkbox-inline 或 .radio-inline class,控制它们显示在同一行上。
    <label for="name">默认的复选框和单选按钮的实例</label>
    <div class="checkbox">
       <label><input type="checkbox" value="">选项 1</label>
    </div>
    <div class="checkbox">
       <label><input type="checkbox" value="">选项 2</label>
    </div>
    
    <div class="radio">
       <label>
          <input type="radio" name="optionsRadios" id="optionsRadios1" 
             value="option1" checked> 选项 1
       </label>
    </div>
    <div class="radio">
       <label>
          <input type="radio" name="optionsRadios" id="optionsRadios2" 
             value="option2">
             选项 2 - 选择它将会取消选择选项 1
       </label>
    </div>
    <label for="name">内联的复选框和单选按钮的实例</label>
    <div>
       <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="checkbox-inline">
          <input type="radio" name="optionsRadiosinline" id="optionsRadios3" 
             value="option1" checked> 选项 1
       </label>
       <label class="checkbox-inline">
          <input type="radio" name="optionsRadiosinline" id="optionsRadios4" 
             value="option2"> 选项 2
       </label>
    </div>

    选择框(Select)

    当您想让用户从多个选项中进行选择,但是默认情况下只能选择一个选项时,则使用选择框。

    • 使用 <select> 展示列表选项,通常是那些用户很熟悉的选择列表,比如州或者数字。
    • 使用 multiple="multiple" 允许用户选择多个选项。

    下面的实例演示了这两种类型(select 和 multiple):

    <form role="form">
       <div class="form-group">
          <label for="name">选择列表</label>
          <select class="form-control">
             <option>1</option>
             <option>2</option>
             <option>3</option>
             <option>4</option>
             <option>5</option>
          </select>
    
          <label for="name">可多选的选择列表</label>
          <select multiple class="form-control">
             <option>1</option>
             <option>2</option>
             <option>3</option>
             <option>4</option>
             <option>5</option>
          </select>
       </div>
    </form>

    静态控件

    当您需要在一个水平表单内的表单标签后放置纯文本时,请在 <p> 上使用 class .form-control-static

  • 表单控件状态

    除了 :focus 状态(即,用户点击 input 或使用 tab 键聚焦到 input 上),Bootstrap 还为禁用的输入框定义了样式,并提供了表单验证的 class。

    输入框焦点

    当输入框 input 接收到 :focus 时,输入框的轮廓会被移除,同时应用 box-shadow

    禁用的输入框 input

    如果您想要禁用一个输入框 input,只需要简单地添加 disabled 属性,这不仅会禁用输入框,还会改变输入框的样式以及当鼠标的指针悬停在元素上时鼠标指针的样式。

    禁用的字段集 fieldset

    对 <fieldset> 添加 disabled 属性来禁用 <fieldset> 内的所有控件。

    验证状态

    Bootstrap 包含了错误、警告和成功消息的验证样式。只需要对父元素简单地添加适当的 class(.has-warning、 .has-error 或 .has-success)即可使用验证状态。

    下面的实例演示了所有控件状态:

  • <form class="form-horizontal" role="form">
       <div class="form-group">
          <label class="col-sm-2 control-label">聚焦</label>
          <div class="col-sm-10">
             <input class="form-control" id="focusedInput" type="text" 
                value="该输入框获得焦点...">
          </div>
       </div>
       <div class="form-group">
          <label for="inputPassword" class="col-sm-2 control-label">
             禁用
          </label>
          <div class="col-sm-10">
             <input class="form-control" id="disabledInput" type="text" 
                placeholder="该输入框禁止输入..." disabled>
          </div>
       </div>
       <fieldset disabled>
          <div class="form-group">
             <label for="disabledTextInput"  class="col-sm-2 control-label">
                禁用输入(Fieldset disabled)
             </label>
             <div class="col-sm-10">
                <input type="text" id="disabledTextInput" class="form-control" 
                   placeholder="禁止输入">
             </div>
          </div>
          <div class="form-group">
             <label for="disabledSelect"  class="col-sm-2 control-label">
                禁用选择菜单(Fieldset disabled)
             </label>
             <div class="col-sm-10">
                <select id="disabledSelect" class="form-control">
                   <option>禁止选择</option>
                </select>
             </div>
          </div>
       </fieldset>
       <div class="form-group has-success">
          <label class="col-sm-2 control-label" for="inputSuccess">
             输入成功
          </label>
          <div class="col-sm-10">
             <input type="text" class="form-control" id="inputSuccess">
          </div>
       </div>
       <div class="form-group has-warning">
          <label class="col-sm-2 control-label" for="inputWarning">
             输入警告
          </label>
          <div class="col-sm-10">
             <input type="text" class="form-control" id="inputWarning">
          </div>
       </div>
       <div class="form-group has-error">
          <label class="col-sm-2 control-label" for="inputError">
             输入错误
          </label>
          <div class="col-sm-10">
             <input type="text" class="form-control" id="inputError">
          </div>
       </div>
    </form>

    表单控件大小

    您可以分别使用 class .input-lg 和 .col-lg-* 来设置表单的高度和宽度。

  • 表单帮助文本

    Bootstrap 表单控件可以在输入框 input 上有一个块级帮助文本。为了添加一个占用整个宽度的内容块,请在 <input> 后使用 .help-block

  • <form role="form">
       <span>帮助文本实例</span>
       <input class="form-control" type="text" placeholder="">
       <span class="help-block">一个较长的帮助文本块,超过一行,
       需要扩展到下一行。本实例中的帮助文本总共有两行。</span>
    </form>

    Bootstrap 按钮

    本章将通过实例讲解如何使用 Bootstrap 按钮。任何带有 class .btn 的元素都会继承圆角灰色按钮的默认外观。但是 Bootstrap 提供了一些选项来定义按钮的样式,具体如下表所示:

  • Class描述
    btn 默认的/标准的按钮。
    btn-primary 提供额外的视觉效果,标识一组按钮中的原始动作。
    btn-success 表示一个成功的或积极的动作。
    btn-info 信息警告消息的上下文按钮。
    btn-warning 表示应谨慎采取的动作。
    btn-danger 表示一个危险的或潜在的负面动作。
    btn-link 并不强调是一个按钮,看起来像一个链接,但同时保持按钮的行为。
<!-- 标准的按钮 -->
<button type="button" class="btn btn-default">默认按钮</button>

<!-- 提供额外的视觉效果,标识一组按钮中的原始动作 -->
<button type="button" class="btn btn-primary">原始按钮</button>

<!-- 表示一个成功的或积极的动作 -->
<button type="button" class="btn btn-success">成功按钮</button>

<!-- 信息警告消息的上下文按钮 -->
<button type="button" class="btn btn-info">信息按钮</button>

<!-- 表示应谨慎采取的动作 -->
<button type="button" class="btn btn-warning">警告按钮</button>

<!-- 表示一个危险的或潜在的负面动作 -->
<button type="button" class="btn btn-danger">危险按钮</button>

<!-- 并不强调是一个按钮,看起来像一个链接,但同时保持按钮的行为 -->
<button type="button" class="btn btn-link">链接按钮</button>

  

按钮大小

下表列出了获得各种大小按钮的 class:

Class描述
.btn-lg 这会让按钮看起来比较大。
.btn-sm 这会让按钮看起来比较小。
.btn-xs 这会让按钮看起来特别小。
.btn-block 这会创建块级的按钮,会横跨父元素的全部宽度。

按钮状态

Bootstrap 提供了激活、禁用等按钮状态的 class,下面将进行详细讲解。

激活状态

按钮在激活时将呈现为被按压的外观(深色的背景、深色的边框、阴影)。

下表列出了让按钮元素和锚元素呈激活状态的 class:

元素Class
按钮元素 添加 .active class 来显示它是激活的。
锚元素 添加 .active class 到 <a> 按钮来显示它是激活的。
<p>
   <button type="button" class="btn btn-default btn-lg ">
      默认按钮
   </button>
   <button type="button" class="btn btn-default btn-lg active">
      激活按钮
   </button>
</p>
<p>
   <button type="button" class="btn btn-primary btn-lg ">
      原始按钮
   </button>
   <button type="button" class="btn btn-primary btn-lg active">
      激活的原始按钮
   </button>
</p>

禁用状态

当您禁用一个按钮时,它的颜色会变淡 50%,并失去渐变。

下表列出了让按钮元素和锚元素呈禁用状态的 class:

元素Class
按钮元素 添加 disabled 属性 到 <button> 按钮。
锚元素 添加 disabled class 到 <a> 按钮。
注意:该 class 只会改变 <a> 的外观,不会改变它的功能。在这里,您需要使用自定义的 JavaScript 来禁用链接。

 

 


Bootstrap 图像

在本章中,我们将学习 Bootstrap 对图像的支持。Bootstrap 提供了三个可对图像应用简单样式的 class:

  • .img-rounded:添加 border-radius:6px 来获得图像圆角。
  • .img-circle:添加 border-radius:500px 来让整个图像变成圆形。
  • .img-thumbnail:添加一些内边距(padding)和一个灰色的边框。

Bootstrap 帮助器类

关闭图标

使用通用的关闭图标来关闭模态框和警告框。使用 class close 得到关闭图标。

<p>关闭图标实例
   <button type="button" class="close" aria-hidden="true">
      &times;
   </button>
</p>

插入符

使用插入符表示下拉功能和方向。使用带有 class caret 的 <span> 元素得到该功能。

<p>插入符实例
   <span class="caret"></span>
</p>

快速浮动

您可以分别使用 class pull-left 或 pull-right 来把元素向左或向右浮动。下面的实例演示了这点。

<div class="pull-left">
   向左快速浮动
</div>
<div class="pull-right">
   向右快速浮动
</div>

如需对齐导航栏中的组件,请使用 .navbar-left 或 .navbar-right 代替。请查看 Bootstrap 导航栏

居中内容块

使用 class center-block 来居中元素。

清除浮动

如需清除元素的浮动,请使用 .clearfix class。

显示和隐藏内容

您可以通过使用 class .show 和 .hidden 来强行设置元素显示或隐藏(包括屏幕阅读器)。

屏幕阅读器

您可以通过使用 class .sr-only 来把元素对所有设备隐藏,除了屏幕阅读器。


Bootstrap 响应式实用工具

Bootstrap 提供了一些帮助器类,以便更快地实现对移动设备友好的开发。这些可以通过媒体查询结合大型、小型和中型设备,实现内容对设备的显示和隐藏。

需要谨慎使用这些工具,避免在同一个站点创建完全不同的版本。响应式实用工具目前只适用于块和表切换。

Class设备
.visible-xs 额外的小设备(小于 768px)可见
.visible-sm 小型设备(768 px 起)可见
.visible-md 中型设备(768 px 到 991 px)可见
.visible-lg 大型设备(992 px 及以上)可见
.hidden-xs 额外的小设备(小于 768px)隐藏
.hidden-sm 小型设备(768 px 起)隐藏
.hidden-md 中型设备(768 px 到 991 px)隐藏
.hidden-lg 大型设备(992 px 及以上)隐藏

打印类

下表列出了打印类。使用这些切换打印内容。

Class打印
.visible-print 可见,可打印
.hidden-print 只对浏览器可见,不可打印

Bootstrap 响应式实用工具

Bootstrap 提供了一些帮助器类,以便更快地实现对移动设备友好的开发。这些可以通过媒体查询结合大型、小型和中型设备,实现内容对设备的显示和隐藏。

需要谨慎使用这些工具,避免在同一个站点创建完全不同的版本。响应式实用工具目前只适用于块和表切换。

Class设备
.visible-xs 额外的小设备(小于 768px)可见
.visible-sm 小型设备(768 px 起)可见
.visible-md 中型设备(768 px 到 991 px)可见
.visible-lg 大型设备(992 px 及以上)可见
.hidden-xs 额外的小设备(小于 768px)隐藏
.hidden-sm 小型设备(768 px 起)隐藏
.hidden-md 中型设备(768 px 到 991 px)隐藏
.hidden-lg 大型设备(992 px 及以上)隐藏