Bootstrap来自 Twitter,是目前最受欢迎的前端框架之一。Bootstrap 提供了一套HTML基础样式、一套观感一致的组件、以及一系列的javascript插件。通过引入Bootstrap的样式文件,可以更快捷地开发web页面。

本文介绍了Bootstrap的一些基本样式和组件,包括容器、页头、媒体组件、图片、列表组。重新实现了上节课的hello.html。我们并未写CSS文件,仅使用Bootstrap就达到了这样的效果,所以讲Bootstrap是一个强大的前端框架!

Bootstrap已经有了较为完整的中文文档。在学习中,你可以参考Bootstrap中文文档,也可以参考一些使用Bootstrap搭建的网站示例

引入 Bootstrap

Bootstrap通过CSS文件来提供样式,同样在<head>中加以引入:

<link rel="stylesheet" href="http://cdn.bootcss.com/bootstrap/3.3.4/css/bootstrap.min.css">

这里引入了cdn.bootcs.com提供了CSS文件,也可以把它下载到本地引用。此后,我们在HTML中通过class来应用Bootstrap提供的样式。

CDN(content delivery network,内容分发网络)是通过互联网连接的网络系统,给用户提供高性能、可扩展、低成本的网络内容。一般网站会把静态内容托管到CDN,减少网站的负载。

容器

Bootstrap 需要为页面内容包裹一个 Bootstrap 容器类,它为页面添加了适当的边距,以及响应式布局的支持。共有两种容器类可用:

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

     <div class="container">
         ...
     </div>
    
  2. .container-fluid 类用于 100% 宽度,占据全部视口(viewport)的容器。

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

containercontainer-fluid这两种容器类不能互相嵌套,如果需要分列可以使用.row.col-xxx

容器实例

我们用Bootstrap重新实现上一节的hello.html。首先移除原来的样式文件./hello.css及其引用。

.container来给页面加合适的边距(代替hello.htmlbodypadding):

<html>
<head>
  <title>Hello, Catty!</title>
  <link rel="stylesheet" href="http://cdn.bootcss.com/bootstrap/3.3.4/css/bootstrap.min.css">
</head>
<body>
<div class="container">
  <h1>Catie's Homepage</h1>
  <h2 id="subtitle">i am a little, cute catie...</h2>
  <img src="./catty.jpeg" class="avatar">
  <div>
    <p>I like fruits!!!</p>
    <ul>
      <li>Cherry</li>
      <li>Peach</li>
      <li><a href='http://www.baidu.com'>Strawberry</a></li>
    </ul>
  </div>
</div>
</body>
</html>

下图的边缘已经有了一定的边距:

拖动窗口使之变大,可以看到边距也会相应增加:

页头

Bootstrap 页头组件.page-header)用来显示一个简易的页头。它会为其中的<h>标签增加适当的空间,并且与页面的其他部分形成一定的分隔。

我们用它来重写标题:

<div class="container">
  <div class="page-header">
    <h1>Catie's Homepage
      <small>i am a little, cute catie...</small>
    </h1>
  </div>
  <img src="./catty.jpeg" class="avatar">
  <div>
    <p>I like fruits!!!</p>
    <ul>
      <li>Cherry</li>
      <li>Peach</li>
      <li><a href='http://www.baidu.com'>Strawberry</a></li>
    </ul>
  </div>
</div>

.page-header还提供了<h>标签内的<small>元素的默认样式。这个<small>通常用来显示副标题。注意标题右侧的浅色文字:

媒体组件

Bootstrap 媒体组件是一个抽象的样式,用以构建不同类型的组件,这些组件都具有在文本内容的左或右侧对齐的图片(就像博客评论或 Twitter 消息等)。

我们重新组织hello.html的内容:

<div class="media">
  <div class="media-left">
    <a><img class="media-object" src="./catty.jpeg"></a>
  </div>
  <div class="media-body">
    <h4 class="media-heading">I like fruits!!! </h4>  
    <ul>
      <li>Cherry</li>
      <li>Peach</li>
      <li><a href="http://www.baidu.com">Strawberry</a></li>
    </ul>
  </div>
</div>

得到左侧图片,右侧文字的样式:

图片

Bootstrap图片用于显示响应式的图片,添加圆角、环绕等效果。我们来重写媒体组件中的<img>标签:

<img class="media-object img-circle img-thumbnail"
     style="width: 100px;height:100px;max-width:100px;"
     src="./catty.jpeg">

img-circle让图片变成了圆形,而img-thumbnail给图片加了白色圆环:

列表组

列表组是灵活又强大的组件,不仅能用于显示一组简单的元素,还能用于复杂的定制的内容。我们用它来显示水果列表:

<div class="list-group">
  <a class="list-group-item" href="#">Cherry</a>
  <a class="list-group-item" href="#">Peach</a>
  <a class="list-group-item" href="http://www.baidu.com">Strawberry</a>
</div>

.list-group还提供了悬停效果:

登录发表评论 注册

反馈意见