Bootstrap 全局 CSS 样式

bootstrap

本项深入了解 Bootstrap 底层结构的关键部分,包括我们让 web 开发变得更好、更快、更强壮的最佳实践。

设置全局 CSS 样式;基本的 HTML 元素均可以通过 class 设置样式并得到增强效果;还有先进的栅格系统。

HTML5 文档类型

Bootstrap 使用到的某些 HTML 元素和 CSS 属性需要将页面设置为 HTML5 文档类型。在你项目中的每个页面都要参照下面的格式进行设置。

<!DOCTYPE html>
<html lang="zh-CN">
  ...
</html>

移动设备优先

Bootstrap 3 中实行的是移动设备优先策略,其对移动设备非常友好。不是简单的增加针对移动设备的样式,而是直接融合进了框架的内核中。也就是说,Bootstrap3 是移动设备优先的。针对移动设备的样式融合进了框架的每个角落,而不是增加一个额外的文件。

为了确保适当的绘制和触屏缩放,需要在 <head> 之中添加 viewport 元数据标签

<meta name="viewport" content="width=device-width, initial-scale=1">

在移动设备浏览器上,通过为视口(viewport)设置 meta 属性为 user-scalable=no 可以禁用其缩放(zooming)功能。这样禁用缩放功能后,用户只能滚动屏幕,就能让你的网站看上去更像原生应用的感觉。注意,这种方式我们并不推荐所有网站使用,还是要看你自己的情况而定!

<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">

排版与链接

Bootstrap 排版、链接样式设置了基本的全局样式。分别是:

  • body 元素设置 background-color: #fff;
  • 使用 @font-family-base@font-size-base@line-height-base a变量作为排版的基本参数
  • 为所有链接设置了基本颜色 @link-color ,并且当链接处于 :hover 状态时才添加下划线

这些样式都能在 scaffolding.less 文件中找到对应的源码。

Normalize.css

为了增强跨浏览器表现的一致性,我们使用了 Normalize.css,这是由 Nicolas GallagherJonathan Neal 维护的一个CSS 重置样式库。

布局容器

Bootstrap 需要为页面内容和栅格系统包裹一个 .container 容器。我们提供了两个作此用处的类。注意,由于 padding 等属性的原因,这两种 容器类不能互相嵌套。

.container 类用于固定宽度并支持响应式布局的容器。

<div class="container">
  ...
</div>

.container-fluid 类用于 100% 宽度,占据全部视口(viewport)的容器。

<div class="container-fluid">
  ...
</div>

Bootstrap 3 提供了一套响应式、移动设备优先的流式栅格系统,随着屏幕或视口(viewport)尺寸的增加,系统会自动分为最多12列。它包含了易于使用的预定义类。

简介

栅格系统用于通过一系列的行(row)与列(column)的组合来创建页面布局,你的内容就可以放入这些创建好的布局中。下面就介绍一下 Bootstrap 栅格系统的工作原理:

  • “行(row)”必须包含在 .container (固定宽度)或 .container-fluid (100% 宽度)中,以便为其赋予合适的排列(aligment)和内补(padding)。
  • 通过“行(row)”在水平方向创建一组“列(column)”。
  • 你的内容应当放置于“列(column)”内,并且,只有“列(column)”可以作为行(row)”的直接子元素。
  • 类似 .row.col-xs-4 这种预定义的类,可以用来快速创建栅格布局。Bootstrap 源码中定义的 mixin 也可以用来创建语义化的布局。
  • 通过为“列(column)”设置 padding 属性,从而创建列与列之间的间隔(gutter)。通过为 .row 元素设置负值 margin 从而抵消掉为 .container 元素设置的 padding ,也就间接为“行(row)”所包含的“列(column)”抵消掉了padding
  • The negative margin is why the examples below are outdented. It's so that content within grid columns is lined up with non-grid content.
  • Grid columns are created by specifying the number of twelve available columns you wish to span. For example, three equal columns would use three .col-xs-4.
  • 如果一“行(row)”中包含了的“列(column)”大于 12,多余的“列(column)”所在的元素将被作为一个整体另起一行排列。
  • Grid classes apply to devices with screen widths greater than or equal to the breakpoint sizes, and override grid classes targeted at smaller devices. Therefore, applying any .col-md- class to an element will not only affect its styling on medium devices but also on large devices if a .col-lg- class is not present.1)

通过研究后面的实例,可以将这些原理应用到你的代码中。

栅格参数

通过下表可以详细查看 Bootstrap 的栅格系统是如何在多种屏幕设备上工作的。

超小屏幕 手机 (<768px) 小屏幕 平板 (≥768px) 中等屏幕 桌面显示器 (≥992px) 大屏幕 大桌面显示器 (≥1200px)
栅格系统行为 总是水平排列 开始是堆叠在一起的,当大于这些阈值时将变为水平排列C
.container 最大宽度 None (自动) 750px 970px 1170px
类前缀 .col-xs- .col-sm- .col-md- .col-lg-
列(column)数 12
最大列(column)宽 自动 ~62px ~81px ~97px
槽(gutter)宽 30px (每列左右均有 15px)
可嵌套
偏移(Offsets)
列排序

实例:从堆叠到水平排列

使用单一的一组 .col-md-* 栅格类,就可以创建一个基本的栅格系统,在手机和平板设备上一开始是堆叠在一起的(超小屏幕到小屏幕这一范围),在桌面(中等)屏幕设备上变为水平排列。所有“列(column)必须放在 ” .row 内。

.col-md-1
.col-md-1
.col-md-1
.col-md-1
.col-md-1
.col-md-1
.col-md-1
.col-md-1
.col-md-1
.col-md-1
.col-md-1
.col-md-1
.col-md-8
.col-md-4
.col-md-4
.col-md-4
.col-md-4
.col-md-6
.col-md-6

<div class="container">   <!--row 必须放在 container 宽容器内-->
    <div class="row">
      <div class="col-md-1">.col-md-1</div>
      <div class="col-md-1">.col-md-1</div>
      <div class="col-md-1">.col-md-1</div>
      <div class="col-md-1">.col-md-1</div>
      <div class="col-md-1">.col-md-1</div>
      <div class="col-md-1">.col-md-1</div>
      <div class="col-md-1">.col-md-1</div>
      <div class="col-md-1">.col-md-1</div>
      <div class="col-md-1">.col-md-1</div>
      <div class="col-md-1">.col-md-1</div>
      <div class="col-md-1">.col-md-1</div>
      <div class="col-md-1">.col-md-1</div>
    </div>
    <div class="row">
      <div class="col-md-8">.col-md-8</div>
      <div class="col-md-4">.col-md-4</div>
    </div>
    <div class="row">
      <div class="col-md-4">.col-md-4</div>
      <div class="col-md-4">.col-md-4</div>
      <div class="col-md-4">.col-md-4</div>
    </div>
    <div class="row">
      <div class="col-md-6">.col-md-6</div>
      <div class="col-md-6">.col-md-6</div>
    </div>
</div>

实例:流式布局容器

将最外面的布局元素 .container 修改为 .container-fluid ,就可以将固定宽度的栅格布局转换为 100% 宽度的布局。

<div class="container-fluid">
  <div class="row">
    ...
  </div>
</div>

实例:移动设备和桌面屏幕

是否不希望在小屏幕设备上所有列都堆叠在一起?那就使用针对超小屏幕和中等屏幕设备所定义的类吧,即 .col-xs-*.col-md-* 。请看下面的实例,研究一下这些是如何工作的。

.col-xs-12 .col-md-8
.col-xs-6 .col-md-4
.col-xs-6 .col-md-4
.col-xs-6 .col-md-4
.col-xs-6 .col-md-4
.col-xs-6
.col-xs-6

<!-- Stack the columns on mobile by making one full-width and the other half-width -->
<div class="row">
  <div class="col-xs-12 col-md-8">.col-xs-12 .col-md-8</div>
  <div class="col-xs-6 col-md-4">.col-xs-6 .col-md-4</div>
</div>
 
<!-- Columns start at 50% wide on mobile and bump up to 33.3% wide on desktop -->
<div class="row">
  <div class="col-xs-6 col-md-4">.col-xs-6 .col-md-4</div>
  <div class="col-xs-6 col-md-4">.col-xs-6 .col-md-4</div>
  <div class="col-xs-6 col-md-4">.col-xs-6 .col-md-4</div>
</div>
 
<!-- Columns are always 50% wide, on mobile and desktop -->
<div class="row">
  <div class="col-xs-6">.col-xs-6</div>
  <div class="col-xs-6">.col-xs-6</div>
</div>

实例:手机、平板、桌面

在上面案例的基础上,通过使用针对平板设备的 .col-sm-* 类,我们来创建更加动态和强大的布局吧。

.col-xs-12 .col-sm-6 .col-md-8
.col-xs-6 .col-md-4
.col-xs-6 .col-sm-4
.col-xs-6 .col-sm-4
.col-xs-6 .col-sm-4

<div class="row">
  <div class="col-xs-12 col-sm-6 col-md-8">.col-xs-12 .col-sm-6 .col-md-8</div>
  <div class="col-xs-6 col-md-4">.col-xs-6 .col-md-4</div>
</div>
<div class="row">
  <div class="col-xs-6 col-sm-4">.col-xs-6 .col-sm-4</div>
  <div class="col-xs-6 col-sm-4">.col-xs-6 .col-sm-4</div>
  <!-- Optional: clear the XS cols if their content doesn't match in height -->
  <div class="clearfix visible-xs-block"></div>
  <div class="col-xs-6 col-sm-4">.col-xs-6 .col-sm-4</div>
</div>

实例:多余的列(column)将另起一行排列

如果在一个 .row 内包含的列(column)大于12个,包含多余列(column)的元素将作为一个整体单元被另起一行排列。

.col-xs-9
.col-xs-4
Since 9 + 4 = 13 > 12, this 4-column-wide div gets wrapped onto a new line as one contiguous unit.
.col-xs-6
Subsequent columns continue along the new line.

<div class="row">
  <div class="col-xs-9">.col-xs-9</div>
  <div class="col-xs-4">.col-xs-4<br>Since 9 + 4 = 13 &gt; 12, this 4-column-wide div gets wrapped onto a new line as one contiguous unit.</div>
  <div class="col-xs-6">.col-xs-6<br>Subsequent columns continue along the new line.</div>
</div>

列偏移

使用 .col-md-offset-* 类可以将列向右侧偏移。这些类实际是通过使用 * 选择器为当前元素增加了左侧的边距(margin)。例如,.col-md-offset-4 类将 .col-md-4 元素向右侧偏移了4个列(column)的宽度。

.col-md-4
.col-md-4 .col-md-offset-4
.col-md-3 .col-md-offset-3
.col-md-3 .col-md-offset-3
.col-md-6 .col-md-offset-3

<div class="row">
  <div class="col-md-4">.col-md-4</div>
  <div class="col-md-4 col-md-offset-4">.col-md-4 .col-md-offset-4</div>
</div>
<div class="row">
  <div class="col-md-3 col-md-offset-3">.col-md-3 .col-md-offset-3</div>
  <div class="col-md-3 col-md-offset-3">.col-md-3 .col-md-offset-3</div>
</div>
<div class="row">
  <div class="col-md-6 col-md-offset-3">.col-md-6 .col-md-offset-3</div>
</div>

嵌套列

为了使用内置的栅格系统将内容再次嵌套,可以通过添加一个新的 .row 元素和一系列 .col-sm-* 元素到已经存在的 .col-sm-* 元素内。被嵌套的行(row)所包含的列(column)的个数不能超过12(其实,没有要求你必须占满12列)。

Level 1: .col-sm-9
Level 2: .col-xs-8 .col-sm-6
Level 2: .col-xs-4 .col-sm-6

<div class="row">
  <div class="col-sm-9">
    Level 1: .col-sm-9
    <div class="row">
      <div class="col-xs-8 col-sm-6">
        Level 2: .col-xs-8 .col-sm-6
      </div>
      <div class="col-xs-4 col-sm-6">
        Level 2: .col-xs-4 .col-sm-6
      </div>
    </div>
  </div>
</div>

列排序

通过使用 .col-md-push-*.col-md-pull-* 类就可以很容易的改变列(column)的顺序。

.col-md-9 .col-md-push-3
.col-md-3 .col-md-pull-9

<div class="row">
  <div class="col-md-9 col-md-push-3">.col-md-9 .col-md-push-3</div>
  <div class="col-md-3 col-md-pull-9">.col-md-3 .col-md-pull-9</div>
</div>

利用 HTML 自带的表示强调意味的标签来为文本增添少量样式。 运用好这些标签突出重点也利于SEO。

标题 H1-H6

HTML 中的所有标题标签,<h1><h6> 均可使用。另外,还提供了 .h1.h6 类,为的是给内联(inline)属性的文本赋予标题的样式。

演示:

h1. Bootstrap heading

h3. Bootstrap heading

h4. Bootstrap heading

h5. Bootstrap heading
h6. Bootstrap heading

<h1>h1. Bootstrap heading</h1>
<h2>h2. Bootstrap heading</h2>
<h3>h3. Bootstrap heading</h3>
<h4>h4. Bootstrap heading</h4>
<h5>h5. Bootstrap heading</h5>
<h6>h6. Bootstrap heading</h6>

在标题内还可以包含 <small> 标签或赋予 .small 类的元素,可以用来标记副标题。

演示:

h1. Bootstrap heading Secondary text

h3. Bootstrap heading Secondary text

h4. Bootstrap heading Secondary text

h5. Bootstrap heading Secondary text
h6. Bootstrap heading Secondary text

<h1>h1. Bootstrap heading <small>Secondary text</small></h1>
<h2>h2. Bootstrap heading <small>Secondary text</small></h2>
<h3>h3. Bootstrap heading <small>Secondary text</small></h3>
<h4>h4. Bootstrap heading <small>Secondary text</small></h4>
<h5>h5. Bootstrap heading <small>Secondary text</small></h5>
<h6>h6. Bootstrap heading <small>Secondary text</small></h6>

页面主体

Bootstrap 3 将全局 font-size 设置为 14pxline-height 设置为 1.428 。这些属性直接赋予 <body> 元素和所有段落元素。另外,<p> (段落)元素还被设置了等于 1/2 行高(即 10px)的底部外边距(margin)。

演示:

它由Twitter的设计师Mark Otto和Jacob Thornton合作开发,是一个CSS/HTML框架。

<p>...</p>

中心内容

通过添加 .lead 类可以让段落突出显示。

演示:

它由Twitter的设计师Mark Otto和Jacob Thornton合作开发,是一个CSS/HTML框架。

<p class="lead">...</p>

内联文本元素

标记文本

<mark> 标签定义带有记号的文本。请在需要突出显示文本时使用 <m> 标签。 ( <mark> 为 html5标签)

演示:

您可以使用该标记标签来强调重要的文字。

您可以使用该标记标签来强调<mark>重要</mark>的文字。

被删除的文本

<del>标签一般作用于被删除的文本。 ( <del> 为 html5标签)

演示:

此行文字是已经被删除的内容,请忽略浏览。

<del>此行文字是已经被删除的内容,请忽略浏览。</del>

无用文本

<s> 标签对于已无用的文本使用 。不赞成使用。定义加删除线的文本。

演示:

不赞成使用。定义加删除线的文本。

<s>不赞成使用。定义加删除线的文本。</s>

插入文本

<ins> 标签对额外插入的文本使用 。一般与<del> 配合使用。表示为删除后更新的文字。

演示:

一打有 二十 十二 件。

<p>一打有 <del>二十</del> <ins>十二</ins> 件。</p>

带下划线的文本

<u> 标签为文本添加下划线 。

演示:

注意这是一段定义了下划线的文字。

<u>注意这是一段定义了下划线的文字。</u>

小号文本

<small> 标签,对于不需要强调的inline或block类型的文本,使用 <small> 标签包裹,其内的文本将被设置为父容器字体大小的 85%。标题元素中嵌套的 <small> 元素被设置不同的 font-size

你还可以为行内元素赋予 .small 类以代替任何 <small> 元素。

演示:

我是正常的文文字 这是一段小号文字,我想让你忽略但是又不想消失。

<p>我是正常的文文字 <small>这是一段小号文字,我想让你忽略但是又不想消失。</small></p>

着重粗体

<strong> 加粗字体,熟悉SEO的朋友都懂的,与<b> 标签视觉效果一样,但是<b>标签现在已不推荐使用。通过增加 font-weight 值强调一段文本。

演示:

把文本定义为语气更强的强调的内容。

把文本定义为语气<strong>更强的强调</strong>的内容。

斜体

<em>标签,用斜体强调一段文本。

演示:

我是一段斜体文字,都正着太单调,斜斜更健康...

<em>我是一段斜体文字,都正着太单调,斜斜更健康...</em>

在 HTML5 中可以放心使用 <b><i> 标签。<b> 用于高亮单词或短语,不带有任何着重的意味;而 <i> 标签主要用于发言、技术词汇等。

对齐文本

通过文本对齐类,可以简单方便的将文字重新对齐。

演示:

Left aligned text.

Center aligned text.

Right aligned text.

Justified text.

No wrap text.

<p class="text-left">Left aligned text.</p>
<p class="text-center">Center aligned text.</p>
<p class="text-right">Right aligned text.</p>
<p class="text-justify">Justified text.</p>
<p class="text-nowrap">No wrap text.</p>

文本颜色

通过颜色传达意义与表示重点的公用类。这些类也适用于链接,当鼠标盘旋于链接上时,其颜色会变深,就像默认的链接样式。

演示:

Fusce dapibus, tellus ac cursus commodo, tortor mauris nibh.

Nullam id dolor id nibh ultricies vehicula ut id elit.

Duis mollis, est non commodo luctus, nisi erat porttitor ligula.

Maecenas sed diam eget risus varius blandit sit amet non magna.

Etiam porta sem malesuada magna mollis euismod.

Donec ullamcorper nulla non metus auctor fringilla.


<p class="text-muted">...</p>
<p class="text-primary">...</p>
<p class="text-success">...</p>
<p class="text-info">...</p>
<p class="text-warning">...</p>
<p class="text-danger">...</p>

LOL 如在一个段落中只想高亮个别文章可以使用<span> 标签调用对应类,如:

<p>段落文字 ,<span class="text-primary">高亮</span></p>

—-

文本背景色

类似于上文的文本颜色类,只是这个是作用于文本背景色。

演示:

Nullam id dolor id nibh ultricies vehicula ut id elit.

Duis mollis, est non commodo luctus, nisi erat porttitor ligula.

Maecenas sed diam eget risus varius blandit sit amet non magna.

Etiam porta sem malesuada magna mollis euismod.

Donec ullamcorper nulla non metus auctor fringilla.


<p class="bg-primary">...</p>
<p class="bg-success">...</p>
<p class="bg-info">...</p>
<p class="bg-warning">...</p>
<p class="bg-danger">...</p>

改变大小写

通过这几个类可以改变英文字母文本的大小写。

演示:

Lowercased text.

Uppercased text.

Capitalized text.

<p class="text-lowercase">Lowercased text.</p>
<p class="text-uppercase">Uppercased text.</p>
<p class="text-capitalize">Capitalized text.</p>

缩略语

当鼠标悬停在缩写和缩写词上时就会显示完整内容,Bootstrap 实现了对 HTML<abbr> 元素的增强样式。缩略语元素带有 title 属性,外观表现为带有较浅的虚线框,鼠标移至上面时会变成带有“问号”的指针。如想看完整的内容可把鼠标悬停在缩略语上, 但需要包含 title 属性。


基本缩略语

如想看完整的内容可把鼠标悬停在缩略语上, 但需要为 <abbr> 元素设置 title 属性。 演示:

中国现在最火的互联网巨头是BAT

<abbr title="百度(Baidu)、阿里巴巴(Alibaba)、腾讯(Tencent)">BAT</abbr>

首字母缩略语

为缩略语添加 .initialism 类,可以让 font-size 变得稍微小些。 演示:

BAT是中国现在最火的互联网公司。

<abbr title="百度(Baidu)、阿里巴巴(Alibaba)、腾讯(Tencent)" class="initialism">BAT</abbr>

地址

让联系信息以最接近日常使用的格式呈现。在每行结尾添加 <br> 可以保留需要的样式。 演示:

Twitter, Inc.
795 Folsom Ave, Suite 600
San Francisco, CA 94107
P: (123) 456-7890
Full Name
[email protected]

<address>
  <strong>Twitter, Inc.</strong><br>
  795 Folsom Ave, Suite 600<br>
  San Francisco, CA 94107<br>
  <abbr title="Phone">P:</abbr> (123) 456-7890
</address>
 
<address>
  <strong>Full Name</strong><br>
  [email protected]
</address>

引用

在你的文档中引用其他来源的内容。


引用:默认样式

将任何 HTML元素包裹在 <blockquote> 中即可表现为引用样式。对于直接引用,我们建议用 <p> 标签。 演示:

天将降大任于斯人也,必先苦其心志,劳其筋骨,饿其体肤,空乏其身,行拂乱其所为也,所以动心忍性,增益其所不能。

<blockquote>
  <p> 天将降大任于斯人也,必先苦其心志,劳其筋骨,饿其体肤,空乏其身,行拂乱其所为也,所以动心忍性,增益其所不能。 </p>
</blockquote>

引用:命名来源

为标识源添加一个 <footer> <脚注>,来源名称包含在 <cite> 中。 演示:

天将降大任于斯人也,必先苦其心志,劳其筋骨,饿其体肤,空乏其身,行拂乱其所为也,所以动心忍性,增益其所不能。

引用来源于 《孟子》

<blockquote>
  <p> 天将降大任于斯人也,必先苦其心志,劳其筋骨,饿其体肤,空乏其身,行拂乱其所为也,所以动心忍性,增益其所不能。 </p>
  <footer>引用来源于 <cite title="《孟子》">《孟子》</cite></footer>
</blockquote>

引用:向右对齐

添加 .blockquote-reverse 类可使引用内容向右对齐。 演示:

天将降大任于斯人也,必先苦其心志,劳其筋骨,饿其体肤,空乏其身,行拂乱其所为也,所以动心忍性,增益其所不能。

引用来源于 《孟子》

 <blockquote class="blockquote-reverse">
  <p> 天将降大任于斯人也,必先苦其心志,劳其筋骨,饿其体肤,空乏其身,行拂乱其所为也,所以动心忍性,增益其所不能。 </p>
  <footer>引用来源于 <cite title="《孟子》">《孟子》</cite></footer>
</blockquote>

列表式样

无序列表

排列顺序无关紧要 的一列元素。

演示:
  • Lorem ipsum dolor sit amet
  • Consectetur adipiscing elit
  • Integer molestie lorem at massa
  • Facilisis in pretium nisl aliquet
  • Nulla volutpat aliquam velit
    • Phasellus iaculis neque
    • Purus sodales ultricies
    • Vestibulum laoreet porttitor sem
    • Ac tristique libero volutpat at
  • Faucibus porta lacus fringilla vel
  • Aenean sit amet erat nunc
  • Eget porttitor lorem

<ul>
  <li>...</li>
</ul>

有序列表

顺序至关重要 的一组元素。

演示:
  1. Lorem ipsum dolor sit amet
  2. Consectetur adipiscing elit
  3. Integer molestie lorem at massa
  4. Facilisis in pretium nisl aliquet
  5. Nulla volutpat aliquam velit
  6. Faucibus porta lacus fringilla vel
  7. Aenean sit amet erat nunc
  8. Eget porttitor lorem

<ol>
  <li>...</li>
</ol>

无样式列表

移除了默认的 list-style 样式和左侧外边距的一组元素(只针对直接子元素)。这是针对直接子元素的 ,也就是说,你需要对所有嵌套的列表都添加这个类才能具有同样的样式。

演示:
  • Lorem ipsum dolor sit amet
  • Consectetur adipiscing elit
  • Integer molestie lorem at massa
  • Facilisis in pretium nisl aliquet
  • Nulla volutpat aliquam velit
    • Phasellus iaculis neque
    • Purus sodales ultricies
    • Vestibulum laoreet porttitor sem
    • Ac tristique libero volutpat at
  • Faucibus porta lacus fringilla vel
  • Aenean sit amet erat nunc
  • Eget porttitor lorem

<ul class="list-unstyled">
  <li>...</li>
</ul>

内联列表

通过设置 display: inline-block; 并添加少量的内补(padding),将所有元素放置于同一行。

演示:

  • Lorem ipsum
  • Phasellus iaculis
  • Nulla volutpat

<ul class="list-inline">
  <li>...</li>
</ul>

描述

带有描述的短语列表。

演示:

Description lists
A description list is perfect for defining terms.
Euismod
Vestibulum id ligula porta felis euismod semper eget lacinia odio sem nec elit.
Donec id elit non mi porta gravida at eget metus.
Malesuada porta
Etiam porta sem malesuada magna mollis euismod.

<dl>
  <dt>...</dt>
  <dd>...</dd>
</dl>

水平排列的描述

.dl-horizontal 可以让 <dl> 内的短语及其描述排在一行。开始是像 <dl> 的默认样式堆叠在一起,随着导航条逐渐展开而排列在一行。

演示:

Description lists
A description list is perfect for defining terms.
Euismod
Vestibulum id ligula porta felis euismod semper eget lacinia odio sem nec elit.
Donec id elit non mi porta gravida at eget metus.
Malesuada porta
Etiam porta sem malesuada magna mollis euismod.
Felis euismod semper eget lacinia
Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus.

<dl class="dl-horizontal">
  <dt>...</dt>
  <dd>...</dd>
</dl>

自动截断

通过 text-overflow 属性,水平排列的描述列表将会截断左侧太长的短语。在较窄的视口(viewport)内,列表将变为默认堆叠排列的布局方式。


内联代码

通过 <code> 标签包裹内联样式的代码片段。

演示:
For example, <section> should be wrapped as inline.

For example, <code>&lt;section&gt;</code> should be wrapped as inline.

用户输入

通过 <kbd> 标签标记用户通过键盘输入的内容。

演示:

To switch directories, type cd followed by the name of the directory.
To edit settings, press ctrl + ,

To switch directories, type <kbd>cd</kbd> followed by the name of the directory.<br>
To edit settings, press <kbd><kbd>ctrl</kbd> + <kbd>,</kbd></kbd>

代码块

多行代码可以使用 <pre> 标签。为了正确的展示代码,注意将尖括号做转义处理。

演示:

<p>Sample text here...</p>

<pre>&lt;p&gt;Sample text here...&lt;/p&gt;</pre>

还可以使用 .pre-scrollable 类,其作用是设置 max-height 为 350px ,并在垂直方向展示滚动条。


变量

通过 <var> 标签标记变量。

演示:

y = mx + b

<var>y</var> = <var>m</var><var>x</var> + <var>b</var>

程序输出

通过 <samp> 标签来标记程序输出的内容。

演示:

This text is meant to be treated as sample output from a computer program.

<samp>This text is meant to be treated as sample output from a computer program.</samp>

基本实例

为任意 <table> 标签添加 .table 类可以为其赋予基本的样式 — 少量的内补(padding)和水平方向的分隔线。这种方式看起来很多余 ?但是我们觉得,表格元素使用的很广泛,如果我们为其赋予默认样式可能会影响例如日历和日期选择之类的插件,所以我们选择将此样式独立出来。

演示:

# First Name Last Name Username
1 Mark Otto @mdo
2 Jacob Thornton @fat
3 Larry the Bird @twitter

<table class="table">
  ...
</table>

条纹状表格

通过 .table-striped 类可以给 <tbody> 之内的每一行增加斑马条纹样式。

►跨浏览器兼容性 :条纹状表格是依赖 :nth-child CSS 选择器实现的,而这一功能不被 Internet Explorer 8 支持。

演示:

# First Name Last Name Username
1 Mark Otto @mdo
2 Jacob Thornton @fat
3 Larry the Bird @twitter

<code>
<table class="table table-striped">
...
</table>

带边框的表格

添加 .table-bordered 类为表格和其中的每个单元格增加边框。

演示:

# First Name Last Name Username
1 Mark Otto @mdo
Mark Otto @TwBootstrap
2 Jacob Thornton @fat
3 Larry the Bird @twitter

<table class="table table-bordered">
...
</table>

鼠标悬停

通过添加 .table-hover 类可以让 <tbody> 中的每一行对鼠标悬停状态作出响应。

演示:

# First Name Last Name Username
1 Mark Otto @mdo
2 Jacob Thornton @fat
3 Larry the Bird @twitter

<table class="table table-hover">
  ...
</table>

紧缩表格

通过添加 .table-condensed 类可以让表格更加紧凑,单元格中的内补(padding)均会减半。

演示:

# First Name Last Name Username
1 Mark Otto @mdo
2 Jacob Thornton @fat
3 Larry the Bird @twitter

<table class="table table-condensed">
  ...
</table>

状态类

通过这些状态类可以为行或单元格设置颜色。

Class 描述
.active 鼠标悬停在行或单元格上时所设置的颜色
.success 标识成功或积极的动作
.info 标识普通的提示信息或动作
.warning 标识警告或需要用户注意
.danger 标识危险或潜在的带来负面影响的动作

演示:

# Column heading Column heading Column heading
1 Column content Column content Column content
2 Column content Column content Column content
3 Column content Column content Column content
4 Column content Column content Column content
5 Column content Column content Column content
6 Column content Column content Column content
7 Column content Column content Column content
8 Column content Column content Column content
9 Column content Column content Column content

<!-- On rows -->
<tr class="active">...</tr>
<tr class="success">...</tr>
<tr class="warning">...</tr>
<tr class="danger">...</tr>
<tr class="info">...</tr>
 
<!-- On cells (`td` or `th`) -->
<tr>
  <td class="active">...</td>
  <td class="success">...</td>
  <td class="warning">...</td>
  <td class="danger">...</td>
  <td class="info">...</td>
</tr>

响应式表格

将任何 .table 元素包裹在 .table-responsive 元素内,即可创建响应式表格,其会在小屏幕设备上(小于768px)水平滚动。当屏幕大于 768px 宽度时,水平滚动条消失。

演示:

# Table heading Table heading Table heading Table heading Table heading Table heading
1 Table cell Table cell Table cell Table cell Table cell Table cell
2 Table cell Table cell Table cell Table cell Table cell Table cell
3 Table cell Table cell Table cell Table cell Table cell Table cell
# Table heading Table heading Table heading Table heading Table heading Table heading
1 Table cell Table cell Table cell Table cell Table cell Table cell
2 Table cell Table cell Table cell Table cell Table cell Table cell
3 Table cell Table cell Table cell Table cell Table cell Table cell

<div class="table-responsive">
  <table class="table">
    ...
  </table>
</div>

基本实例

单独的表单控件会被自动赋予一些全局样式。所有设置了 .form-control 类的 <input><textarea><select> 元素都将被默认设置宽度属性为 width: 100%;。 将 label 元素和前面提到的控件包裹在 .form-group 中可以获得最好的排列。 演示:

Example block-level help text here.



<form role="form">
  <div class="form-group">
	<label for="exampleInputEmail1">Email address</label>
	<input class="form-control" id="exampleInputEmail1" placeholder="Enter email" type="email">
  </div>
  <div class="form-group">
	<label for="exampleInputPassword1">Password</label>
	<input class="form-control" id="exampleInputPassword1" placeholder="Password" type="password">
  </div>
  <div class="form-group">
	<label for="exampleInputFile">File input</label>
	<input id="exampleInputFile" type="file">
	<p class="help-block">Example block-level help text here.</p>
  </div>
  <div class="checkbox">
	<label>
	  <input type="checkbox"> Check me out
	</label>
  </div>
  <button type="submit" class="btn btn-default">Submit</button>
</form>

☛不要将表单组直接和输入框组混合使用。建议将输入框组嵌套到表单组中使用


内联表单

<form> 元素添加 .form-inline 类可使其内容左对齐并且表现为 inline-block 级别的控件。只适用于视口(viewport)至少在 768px 宽度时(视口宽度再小的话就会使表单折叠)。

:!:需要手动设置宽度

在 Bootstrap 中,输入框和单选/多选框控件默认被设置为 width: 100%; 宽度。在内联表单,我们将这些元素的宽度设置为 width: auto;,因此,多个控件可以排列在同一行。根据你的布局需求,可能需要一些额外的定制化组件。

:!:一定要添加 label 标签

如果你没有为每个输入控件设置 label 标签,屏幕阅读器将无法正确识别。对于这些内联表单,你可以通过为 label 设置 .sr-only 类将其隐藏。

演示:

@


<form class="form-inline" role="form">
  <div class="form-group">
	<label class="sr-only" for="exampleInputEmail2">Email address</label>
	<input class="form-control" id="exampleInputEmail2" placeholder="Enter email" type="email">
  </div>
  <div class="form-group">
	<div class="input-group">
	  <div class="input-group-addon">@</div>
	  <input class="form-control" placeholder="Enter email" type="email">
	</div>
  </div>
  <div class="form-group">
	<label class="sr-only" for="exampleInputPassword2">Password</label>
	<input class="form-control" id="exampleInputPassword2" placeholder="Password" type="password">
  </div>
  <div class="checkbox">
	<label>
	  <input type="checkbox"> Remember me
	</label>
  </div>
  <button type="submit" class="btn btn-default">Sign in</button>
</form>

水平排列的表单

通过为表单添加 .form-horizontal 类,并联合使用 Bootstrap 预置的栅格类,可以将 label 标签和控件组水平并排布局。这样做将改变 .form-group 的行为,使其表现为栅格系统中的行(row),因此就无需再额外添加 .row 了。

演示:

<form class="form-horizontal" role="form">
  <div class="form-group">
	<label for="inputEmail3" class="col-sm-2 control-label">Email</label>
	<div class="col-sm-10">
	  <input class="form-control" id="inputEmail3" placeholder="Email" type="email">
	</div>
  </div>
  <div class="form-group">
	<label for="inputPassword3" class="col-sm-2 control-label">Password</label>
	<div class="col-sm-10">
	  <input class="form-control" id="inputPassword3" placeholder="Password" type="password">
	</div>
  </div>
  <div class="form-group">
	<div class="col-sm-offset-2 col-sm-10">
	  <div class="checkbox">
		<label>
		  <input type="checkbox"> Remember me
		</label>
	  </div>
	</div>
  </div>
  <div class="form-group">
	<div class="col-sm-offset-2 col-sm-10">
	  <button type="submit" class="btn btn-default">Sign in</button>
	</div>
  </div>
</form>

被支持的控件

表单布局实例中展示了其所支持的标准表单控件。

表单控件:输入框

包括大部分表单控件、文本输入域控件,还支持所有 HTML5 类型的输入控件: textpassworddatetimedatetime-localdatemonthtimeweeknumberemailurlsearchtelcolor

LOL 必须添加类型声明: 只有正确设置了 type 属性的输入控件才能被赋予正确的样式,如。 演示:


<form role="form">
  <input class="form-control" placeholder="Text input" type="text">
</form>

LOL 输入控件组 如需在文本输入域 <input> 前面或后面添加文本内容或按钮控件,请参考输入控件组


表单控件:文本域

支持多行文本的表单控件。可根据需要改变 rows 属性。 演示:


<form role="form">
  <textarea class="form-control" placeholder="这是一个多行文本域" rows="3"></textarea>
</form>

表单控件:多选和单选框

多选框(checkbox)用于选择列表中的一个或多个选项,而单选框(radio)用于从多个选项中只选择一个。 设置了 disabled 属性的单选或多选框都能被赋予合适的样式。对于和多选或单选框联合使用的 <label> 标签,如果也希望将悬停于上方的鼠标设置为“禁止点击”的样式,请将 .disabled 类赋予 .radio.radio-inline.checkbox.checkbox-inline<fieldset>


A. 默认外观(堆叠在一起) 演示:




<form role="form">
  <div class="checkbox">
	<label>
	  <input value="" type="checkbox">
	  Option one is this and that—be sure to include why it's great
	</label>
  </div>
  <div class="checkbox disabled">
	<label>
	  <input value="" disabled="" type="checkbox">
	  Option two is disabled
	</label>
  </div>
  <br>
  <div class="radio">
	<label>
	  <input name="optionsRadios" id="optionsRadios1" value="option1" checked="" type="radio">
	  Option one is this and that—be sure to include why it's great
	</label>
  </div>
  <div class="radio">
	<label>
	  <input name="optionsRadios" id="optionsRadios2" value="option2" type="radio">
	  Option two can be something else and selecting it will deselect option one
	</label>
  </div>
  <div class="radio disabled">
	<label>
 
	  <input name="optionsRadios" id="optionsRadios3" value="option3" disabled="" type="radio">
	  Option three is disabled
	</label>
  </div>
</form>

B. 内联单选和多选框

通过将 .checkbox-inline.radio-inline 类应用到一系列的多选框(checkbox)或单选框(radio)控件上,可以使这些控件排列在一行。

演示:





<form role="form">
  <label class="checkbox-inline">
	<input id="inlineCheckbox1" value="option1" type="checkbox"> 1
  </label>
  <label class="checkbox-inline">
	<input id="inlineCheckbox2" value="option2" type="checkbox"> 2
  </label>
  <label class="checkbox-inline">
	<input id="inlineCheckbox3" value="option3" type="checkbox"> 3
  </label>
</form>
<br>
<form role="form">
  <label class="radio-inline">
	<input name="inlineRadioOptions" id="inlineRadio1" value="option1" type="radio"> 1
  </label>
  <label class="radio-inline">
	<input name="inlineRadioOptions" id="inlineRadio2" value="option2" type="radio"> 2
  </label>
  <label class="radio-inline">
	<input name="inlineRadioOptions" id="inlineRadio3" value="option3" type="radio"> 3
  </label>
</form>

C. 无标签的 Checkbox 和 radio

Should you have no text within the <label>, the input is positioned as you'd expect. Currently only works on non-inline checkboxes and radios.

演示:

<form role="form">
  <div class="checkbox">
	<label>
	  <input id="blankCheckbox" value="option1" type="checkbox">
	</label>
  </div>
  <div class="radio">
	<label>
	  <input name="blankRadio" id="blankRadio1" value="option1" type="radio">
	</label>
  </div>
</form>

表单控件:下拉列表(select)

使用默认选项或添加 multiple 属性可以同时显示多个选项。 演示:



<form role="form">
  <select class="form-control">
	<option>1</option>
	<option>2</option>
	<option>3</option>
	<option>4</option>
	<option>5</option>
  </select>
 
  <select multiple="" class="form-control">
	<option>1</option>
	<option>2</option>
	<option>3</option>
	<option>4</option>
	<option>5</option>
  </select>
</form>

静态控件

如果需要在表单中将一行纯文本和 label 元素放置于同一行,为 <p> 元素添加 .form-control-static 类即可。

演示:

<form class="form-horizontal" role="form">
  <div class="form-group">
	<label class="col-sm-2 control-label">Email</label>
	<div class="col-sm-10">
	  <p class="form-control-static">[email protected]</p>
	</div>
  </div>
  <div class="form-group">
	<label for="inputPassword" class="col-sm-2 control-label">Password</label>
	<div class="col-sm-10">
	  <input class="form-control" id="inputPassword" placeholder="Password" type="password">
	</div>
  </div>
</form>

演示:


<form class="form-inline" role="form">
  <div class="form-group">
	<label class="sr-only">Email</label>
	<p class="form-control-static">[email protected]</p>
  </div>
  <div class="form-group">
	<label for="inputPassword2" class="sr-only">Password</label>
	<input class="form-control" id="inputPassword2" placeholder="Password" type="password">
  </div>
  <button type="submit" class="btn btn-default">Confirm identity</button>
</form>

输入框焦点

我们将某些表单控件的默认样式移除,然后对 :focus 状态赋予 box-shadow 属性。

演示:


<form role="form">
  <input class="form-control" value="Demonstrative focus state" type="text">
</form>

LOL 演示:focus 状态 在本文档中,我们为上面实例中的输入框赋予了自定义的样式,用于演示 .form-control 元素的 :focus 状态。


禁用输入框

为输入框设置 disabled 属性可以防止用户输入,并能对外观做一些修改,使其更直观。 演示:


<form role="form">
  <input class="form-control" id="disabledInput" placeholder="这是一个被禁用的输入框…" disabled="" type="text">
</form>

禁用N个控件

<fieldset> 标签设置 disabled 属性,可以禁用 <fieldset> 标签中包含的所有控件。


:!: <a> 标签的链接功能不受影响

我们试图通过设置 pointer-events: none 来禁用 <a class="btn btn-*"> 按钮的链接功能,但是这个 CSS 属性尚未标准化,目前也没有被所有浏览器支持,包括 Opera 18 或 Internet Explorer 11 及更低版本。建议用户自己通过 JavaScript 代码禁用链接功能。


:!: 跨浏览器兼容性

虽然 Bootstrap 会将这些样式应用到所有浏览器上,Internet Explorer 11 及以下浏览器中的 <fieldset> 元素并不完全支持 disabled 属性。因此建议在这些浏览器上通过 JavaScript 代码来禁用 <fieldset>

演示:

<form role="form">
  <fieldset disabled>
	<div class="form-group">
	  <label for="disabledTextInput">Disabled input</label>
	  <input id="disabledTextInput" class="form-control" placeholder="Disabled input" type="text">
	</div>
	<div class="form-group">
	  <label for="disabledSelect">Disabled select menu</label>
	  <select id="disabledSelect" class="form-control">
		<option>Disabled select</option>
	  </select>
	</div>
	<div class="checkbox">
	  <label>
		<input type="checkbox"> Can't check this
	  </label>
	</div>
	<button type="submit" class="btn btn-primary">Submit</button>
  </fieldset>
</form>

只读状态

为输入框设置 readonly 属性可以禁止用户输入,并且输入框的样式也是禁用状态。 演示:


<form role="form">
  <input class="form-control" placeholder="Readonly input here…" readonly="" type="text">
</form>

校验状态

Bootstrap 对表单控件的校验状态,如 error、warning 和 success 状态,都定义了样式。使用时,添加 .has-warning.has-error.has-success 类到这些控件的父元素即可。任何包含在此元素之内的 .control-label.form-control.help-block 元素都将接受这些校验状态的样式。

演示:

<form role="form">
  <div class="form-group has-success">
 
	<label class="control-label" for="inputSuccess1">Input with success</label>
	<input class="form-control" id="inputSuccess1" type="text">
  </div>
  <div class="form-group has-warning">
	<label class="control-label" for="inputWarning1">Input with warning</label>
	<input class="form-control" id="inputWarning1" type="text">
  </div>
  <div class="form-group has-error">
	<label class="control-label" for="inputError1">Input with error</label>
	<input class="form-control" id="inputError1" type="text">
  </div>
  <div class="has-success">
	<div class="checkbox">
	  <label>
		<input id="checkboxSuccess" value="option1" type="checkbox">
		Checkbox with success
	  </label>
	</div>
  </div>
  <div class="has-warning">
	<div class="checkbox">
	  <label>
		<input id="checkboxWarning" value="option1" type="checkbox">
		Checkbox with warning
	  </label>
	</div>
  </div>
  <div class="has-error">
	<div class="checkbox">
	  <label>
		<input id="checkboxError" value="option1" type="checkbox">
		Checkbox with error
	  </label>
	</div>
  </div>
</form>

添加额外的图标

你还可以针对校验状态为输入框添加额外的图标。只需设置相应的 .has-feedback 类并添加正确的图标即可。

Feedback icons only work with textual <input class="form-control"> elements.


图标、''label'' 和输入控件组

对于不带有 label 标签的输入框以及右侧带有附加组件的输入框组,需要手动为其图标定位。为了让所有用户都能访问你的网站,我们强烈建议为所有输入框添加 label 标签。如果你不希望将 label 标签展示出来,可以通过添加 sr-only 类来实现。如果的确不能添加 label 标签,请调整图标的 top 值。对于输入框组,请根据你的实际情况调整 right 值。

演示:

<form role="form">
  <div class="form-group has-success has-feedback">
	<label class="control-label" for="inputSuccess2">Input with success</label>
	<input class="form-control" id="inputSuccess2" type="text">
 
  </div>
  <div class="form-group has-warning has-feedback">
	<label class="control-label" for="inputWarning2">Input with warning</label>
	<input class="form-control" id="inputWarning2" type="text">
 
  </div>
  <div class="form-group has-error has-feedback">
	<label class="control-label" for="inputError2">Input with error</label>
	<input class="form-control" id="inputError2" type="text">
 
  </div>
</form>

为水平排列的表单和内联表单设置可选的图标

演示:

<form class="form-horizontal" role="form">
  <div class="form-group has-success has-feedback">
	<label class="control-label col-sm-3" for="inputSuccess3">Input with success</label>
	<div class="col-sm-9">
	  <input class="form-control" id="inputSuccess3" type="text">
	  <span class="glyphicon glyphicon-ok form-control-feedback"></span>
	</div>
  </div>
</form>

演示:


<form class="form-inline" role="form">
  <div class="form-group has-success has-feedback">
	<label class="control-label" for="inputSuccess4">Input with success</label>
	<input class="form-control" id="inputSuccess4" type="text">
	<span class="glyphicon glyphicon-ok form-control-feedback"></span>
  </div>
</form>

可选的图标与设置 ''.sr-only'' 类的 ''label''

通过为 label 元素添加 .sr-only 类,可以让表单控件的 label 元素不可见。在这种情况下,Bootstrap 将自动调整图标的位置。 演示:

<div class="form-group has-success has-feedback">
  <label class="control-label sr-only" for="inputSuccess5">隐藏的 label</label>
  <input type="text" class="form-control" id="inputSuccess5">
  <span class="glyphicon glyphicon-ok form-control-feedback"></span>
</div>

控件尺寸

通过 .input-lg 类似的类可以为控件设置高度,通过 .col-lg-* 类似的类可以为控件设置宽度。


高度尺寸

创建大一些或小一些的表单控件以匹配按钮尺寸 演示:







<form role="form">
	<input class="form-control input-lg" placeholder=".input-lg" type="text">
	<input class="form-control" placeholder="Default input" type="text">
	<input class="form-control input-sm" placeholder=".input-sm" type="text">
 
	<select class="form-control input-lg"><option value="">.input-lg</option></select>
	<select class="form-control"><option value="">Default select</option></select>
	<select class="form-control input-sm"><option value="">.input-sm</option></select>
</form>

水平排列的表单组的尺寸

通过添加 .form-group-lg.form-group-sm 类,为 .form-horizontal 包裹的 label 元素和表单控件快速设置尺寸。

演示:

<form class="form-horizontal" role="form">
  <div class="form-group form-group-lg">
	<label class="col-sm-2 control-label" for="formGroupInputLarge">Large label</label>
	<div class="col-sm-10">
	  <input class="form-control" id="formGroupInputLarge" placeholder="Large input" type="text">
	</div>
  </div>
  <div class="form-group form-group-sm">
	<label class="col-sm-2 control-label" for="formGroupInputSmall">Small label</label>
	<div class="col-sm-10">
	  <input class="form-control" id="formGroupInputSmall" placeholder="Small input" type="text">
	</div>
  </div>
</form>

调整列(column)尺寸

用栅格系统中的列(column)包裹输入框或其任何父元素,都可很容易的为其设置宽度。 演示:


<form role="form">
  <div class="row">
	<div class="col-xs-2">
	  <input class="form-control" placeholder=".col-xs-2" type="text">
	</div>
	<div class="col-xs-3">
	  <input class="form-control" placeholder=".col-xs-3" type="text">
	</div>
	<div class="col-xs-4">
	  <input class="form-control" placeholder=".col-xs-4" type="text">
	</div>
  </div>
</form>

辅助文本

针对表单控件的“块(block)”级辅助文本。

演示:

A block of help text that breaks onto a new line and may extend beyond one line.

<form role="form">
  <input class="form-control" type="text">
  A block of help text that breaks onto a new line and may extend beyond one line.
</form>

预定义样式

使用下面列出的类可以快速创建一个带有预定义样式的按钮。 演示:


<!-- Standard button -->
<button type="button" class="btn btn-default">Default</button>
 
<!-- Provides extra visual weight and identifies the primary action in a set of buttons -->
<button type="button" class="btn btn-primary">Primary</button>
 
<!-- Indicates a successful or positive action -->
<button type="button" class="btn btn-success">Success</button>
 
<!-- Contextual button for informational alert messages -->
<button type="button" class="btn btn-info">Info</button>
 
<!-- Indicates caution should be taken with this action -->
<button type="button" class="btn btn-warning">Warning</button>
 
<!-- Indicates a dangerous or potentially negative action -->
<button type="button" class="btn btn-danger">Danger</button>
 
<!-- Deemphasize a button by making it look like a link while maintaining button behavior -->
<button type="button" class="btn btn-link">Link</button>

尺寸

需要让按钮具有不同尺寸吗?使用 .btn-lg.btn-sm.btn-xs 可以获得不同尺寸的按钮。

演示:


<p>
  <button type="button" class="btn btn-primary btn-lg">Large button</button>
  <button type="button" class="btn btn-default btn-lg">Large button</button>
</p>
<p>
  <button type="button" class="btn btn-primary">Default button</button>
  <button type="button" class="btn btn-default">Default button</button>
</p>
<p>
  <button type="button" class="btn btn-primary btn-sm">Small button</button>
  <button type="button" class="btn btn-default btn-sm">Small button</button>
</p>
<p>
  <button type="button" class="btn btn-primary btn-xs">Extra small button</button>
  <button type="button" class="btn btn-default btn-xs">Extra small button</button>
</p>

通过给按钮添加 .btn-block 类可以将其拉伸至父元素100%的宽度,而且按钮也变为了块级(block)元素。

演示:


<button type="button" class="btn btn-primary btn-lg btn-block">Block level button</button>
<button type="button" class="btn btn-default btn-lg btn-block">Block level button</button>

激活状态

当按钮处于激活状态时,其表现为被按压下去(底色更深、边框夜色更深、向内投射阴影)。对于 <button> 元素,是通过 :active 状态实现的。对于 <a> 元素,是通过 .active 类实现的。然而,你还可以将 .active 应用到 <button> 上,并通过编程的方式使其处于激活状态。

button 元素

由于 :active 是伪状态,因此无需额外添加,但是在需要让其表现出同样外观的时候可以添加 .active 类。

演示:


<button type="button" class="btn btn-primary btn-lg active">Primary button</button>
<button type="button" class="btn btn-default btn-lg active">Button</button>

链接元素

可以为基于 <a> 元素创建的按钮添加 .active 类。

演示:


<a href="#" class="btn btn-primary btn-lg active" role="button">Primary link</a>
<a href="#" class="btn btn-default btn-lg active" role="button">Link</a>

禁用状态

通过为按钮的背景设置 opacity 属性就可以呈现出无法点击的效果

button 元素

<button> 元素添加 disabled 属性,使其表现出禁用状态。

演示:


<button type="button" class="btn btn-primary btn-lg" disabled>Primary button</button>
<button type="button" class="btn btn-default btn-lg" disabled>Button</button>
跨浏览器兼容性

:!: 如果为 <button> 元素添加 disabled 属性,Internet Explorer 9 及更低版本的浏览器将会把按钮中的文本绘制为灰色,并带有阴影,目前我们还没有解决办法。


链接元素

为基于 <a> 元素创建的按钮添加 .disabled 类。

演示:

Primary link Link


<a href="#" class="btn btn-primary btn-lg disabled" role="button">Primary link</a>
<a href="#" class="btn btn-default btn-lg disabled" role="button">Link</a>

我们把 .disabled 作为工具类使用,就像 .active 类一样,因此不需要增加前缀。


链接的原始功能不受影响

上面提到的类只是通过设置 pointer-events: none 来禁止 <a> 元素作为链接的原始功能,但是,这一 CSS 属性并没有被标准化,并且 Opera 18 及更低版本的浏览器并没有完全支持这一属性,同样,Internet Explorer 11 也不支持。因此,为了安全起见,建议通过 JavaScript 代码来禁止链接的原始功能。


Context-specific usage

虽然按钮类可以应用到 <a><button> 元素上,但是,导航和导航条只支持 <button> 元素。


按钮类

<a><button><input> 元素应用按钮类。

演示:

Link


<a class="btn btn-default" href="#" role="button">Link</a>
<button class="btn btn-default" type="submit">Button</button>
<input class="btn btn-default" value="Input" type="button">
<input class="btn btn-default" value="Submit" type="submit">

LOL 跨浏览器展现

我们总结的最佳实践是,强烈建议尽可能使用 <button> 元素来获得在各个浏览器上获得相匹配的绘制效果。

另外,我们还发现了a bug in Firefox <30 版本的浏览器上出现的一个 bug :阻止我们为基于 <input> 元素创建的按钮设置 line-height 属性,这就导致在 Firefox 浏览器上不能完全和其他按钮保持一致的高度。


响应式图片

在 Bootstrap 版本 3 中,通过为图片添加 .img-responsive 类可以让图片支持响应式布局。其实质是为图片设置了 max-width: 100%;height: auto; 属性,从而让图片在其父元素中更好的缩放。

SVG 图像和 IE 8-10

在 Internet Explorer 8-10 中,设置为 .img-responsive 的 SVG 图像显示出的尺寸不匀称。为了解决这个问题,在出问题的地方添加 width: 100% \9; 即可。Bootstrap 并没有自动为所有图像元素设置这一属性,因为这会导致其他图像格式出现错乱。

<img src="..." class="img-responsive" alt="Responsive image">

图片形状

通过为 <img> 元素添加以下相应的类,可以让图片呈现不同的形状。

:!: 跨浏览器兼容性 请时刻牢记:Internet Explorer 8 不支持 CSS3 中的圆角属性。

演示:

140x140 140x140 140x140


<img src="..." alt="..." class="img-rounded">
<img src="..." alt="..." class="img-circle">
<img src="..." alt="..." class="img-thumbnail">


关闭按钮

通过使用一个象征关闭的图标,可以用来让模式对话框和警告框消失。

演示:


<button type="button" class="close"><span aria-hidden="true">&times;</span><span class="sr-only">关闭</span></button>

三角符号

通过使用三角符号可以指示某个元素具有下拉菜单的功能。注意,向上弹出式菜单中的三角符号是反方向的。

演示:


<span class="caret"></span>

左右浮动

通过这两个class让页面元素左右浮动。 !important被用来避免某些问题。也可以像mixin一样使用这两个class。

<div class="pull-left">...</div>
<div class="pull-right">...</div>
//Classes
.pull-left {
  float: left !important;
}
.pull-right {
  float: right !important;
}
 
//Usage as mixins
.element {
  .pull-left();
}
.another-element {
  .pull-right();
}

:!: 不要用于导航条 如果是用于对齐导航条上的组件,请务必使用.navbar-left.navbar-right。查看导航条文档以获取详情。


内容区域居中

将页面元素设置为 display: block并通过设置margin使其居中。可以作为mixin或class使用。

<div class="center-block">...</div>
// 作为classe使用
.center-block {
  display: block;
  margin-left: auto;
  margin-right: auto;
}
 
// 作为mixin使用
.element {
  .center-block();
}

清除浮动

使用.clearfix 清除任意页面元素的浮动。我们使用了Nicolas Gallagher的the micro clearfix。也可以像mixin一样使用。

<!-- Usage as a class -->
<div class="clearfix">...</div>
// Mixin itself
.clearfix() {
  &:before,
  &:after {
    content: " ";
    display: table;
  }
  &:after {
    clear: both;
  }
}
 
// Usage as a Mixin
.element {
  .clearfix();
}

显示和隐藏内容

通过.show.hidden 可以强制显示或隐藏任一页面元素(包括在屏幕阅读器上 )。这两个class使用了!important 以避免冲突,原因和快速浮动类似。这两个class只能做用于块级元素,也可以作为mixin使用。

.hide 仍然可以用,但是它不能影响屏幕阅读器,并且从v3.0.1版本开始已将被标记为不建议使用 。请使用.hidden.sr-only

Furthermore, .invisible can be used to toggle only the visibility of an element, meaning its display is not modified and the element can still affect the flow of the document.

<div class="show">...</div>
<div class="hidden">...</div>
// Classes
.show {
  display: block !important;
}
.hidden {
  display: none !important;
  visibility: hidden !important;
}
.invisible {
  visibility: hidden;
}
 
// Usage as mixins
.element {
  .show();
}
.another-element {
  .hidden();
}

针对屏幕阅读器的内容

使用.sr-only 可以针对除了屏幕阅读器 之外的所有设备隐藏某一个元素。 对于可访问性最佳实践也很有用。此class还可以作为mixin使用。

.sr-only-focusable

<a class="sr-only sr-only-focusable" href="#content">Skip to main content</a>
// Usage as a Mixin
.skip-navigation {
  .sr-only();
  .sr-only-focusable();
}

图片替换

使用.text-hide class(也可作为mixin使用)可以将页面元素所包含的文本内容替换为背景图。

<h1 class="text-hide">Custom heading</h1>
// Usage as a Mixin
.heading {
  .text-hide();
}

为了加快对移动设备友好的页面开发工作,利用媒体查询功能并使用这些工具类可以方便的针对不同设备展示或隐藏页面内容。另外还包含了针对打印机显示或隐藏内容的工具类。

有针对性的使用这类工具类,从而避免为同一个网站创建完全不同的版本。相反,通过使用这些工具类可以在不同设备上提供不同的展现形式。


可用的类

通过单独或联合使用以下列出的类,可以针对不同屏幕尺寸隐藏或显示页面内容。

超小屏幕 手机 (<768px) 小屏幕 平板 (≥768px) 中等屏幕 桌面 (≥992px) 大屏幕 桌面 (≥1200px)
.visible-xs-* 可见 隐藏 隐藏 隐藏
.visible-sm-* 隐藏 可见 隐藏 隐藏
.visible-md-* 隐藏 隐藏 可见 隐藏
.visible-lg-* 隐藏 隐藏 隐藏 可见
.hidden-xs 隐藏 可见 可见 可见
.hidden-sm 可见 隐藏 可见 可见
.hidden-md 可见 可见 隐藏 可见
.hidden-lg 可见 可见 可见 隐藏

从 v3.2.0 版本起,形如 .visible-*-* 的类针对每种屏幕大小都有了三种变体,每个针对 CSS 中不同的 display 属性,列表如下:

类组 CSS display
.visible-*-block display: block;
.visible-*-inline display: inline;
.visible-*-inline-block display: inline-block;

因此,以超小屏幕(xs )为例,可用的 .visible-*-* 类是:.visible-xs-block.visible-xs-inline.visible-xs-inline-block

.visible-xs.visible-sm.visible-md.visible-lg 类也同时存在。但是从 v3.2.0 版本开始不再建议使用 。除了 <table> 相关的元素的特殊情况外,它们与 .visible-*-block 大体相同。

打印类

和常规的响应式类一样,使用下面的类可以针对打印机隐藏或显示某些内容。

class 浏览器 打印机
.visible-print-block
.visible-print-inline
.visible-print-inline-block
隐藏 可见
.hidden-print 可见 隐藏

.visible-print 类也是存在的,但是从 v3.2.0 版本开始不建议使用 。它与 .visible-print-block 类大致相同,除了 <table> 相关元素的特殊情况外。


响应式实例

打开此页浏览实例:

http://boot3.lovean.com/html/demo.html?rurl=/html/examples/bootstrap_v3_visible.html


移动设备请打开:

http://boot3.lovean.com/html/examples/bootstrap_v3_visible.html


调整你的浏览器大小,或者用其他设备打开页面,都可以测试这些响应式工具类。

1) 网格类适用于具有大于或等于断点大小的屏幕宽度的设备,并覆盖针对较小设备的网格类。因此,应用任何。西医学博士类元素不仅会影响其造型中的设备也在大型设备如果。Col LG阶级是不存在的。