bootstrap初步认识1

产生背景:

1.作者为公司内部提供一套标准化的前端开发工具

2.为了完成前端开发任务,工程师们几乎尝试了自己熟悉的所有库。应用之间的不一致性导致它们难以扩展和维护。Bootstrap最初就是这个问题的一个解决方案,而且在Twitter内部第一次Hackweek上得到了认可。Hackweek结束后,我们手头上的项目已经相当稳定,可以在公司内部部署使用了。

3.从最初CSS驱动的项目,发展到内置了很多JavaScript插件和图标,并且涵盖了表单和按钮元素。

4.Bootstrap本身支持响应式Web设计,而且拥有一个非常稳健的12列、940像素宽的网格布局系统。

对于新项目,Bootstrap则提供了一整套有用的基本要素。

一般来说,我在着手开发新项目的时候,都会整合Eric Meyer的Reset CSS(http://meyerweb.com/eric/tools/css/reset/) 等一些工具。

自从有了Bootstrap,只要在网站中引入bootstrap.css这个CSS文件,或者再加上bootstrap.js这个JavaScript文件,整个项目的基础平台就搭建好了。

一般开发时使用未压缩版,而在发布时使用压缩版本。

全局样式

Bootstrap预定义了一些样式。Bootstrap 1.0使用的是以前的重置样式表。

但Bootstrap 2.0则使用Nicolas Gallagher写的Normalize.css(http://necolas.github.com/normalize.css/)。

HTML5 Boilerplate(http://html5boilerplate.com/)使用的也是这个样式表。

这个样式表包含在bootstrap.css 中。

特别值得注意以下几种默认样式,它们专门针对排版和链接:

1.从body中去掉了margin,这样内容就会紧贴浏览器窗口边缘;

2.为body应用了background-color: white;;

3.Bootstrap以@baseFontFamily、@baseFontSize和@baseLineHeight属性作为排版的基准,确保整个网站的标题及其他内容的行高一致;

4.Bootstrap通过@linkColor设置全局链接颜色,只在:hover状态下给链接添加下划线。

记住,要修改默认颜色,可以直接修改相应.less文件中的全局变量值。要么修改scaffolding.less文件,要么修改你自己的样式表。

默认网格系统

Bootstrap默认的网格布局(图1-1)包含12列,940像素宽,不支持响应式布局。

加载响应式CSS文件后,网格布局会根据视口(viewport)宽度在724像素到1170像素之间伸缩。

视口宽度小于767像素时,说明是平板电脑或更小的设备,布局中的列会垂直堆叠起来。

默认宽度下,每列宽60像素,且向左平移20像素。

基本网格的HTML

创建简单布局时,给作为行的<div>添加.row类,给作为列的<div>添加表示横跨多少列的.span*类即可。因为网格布局可以包含12列,所以.span*中的*加起来必须等于12。这样,可以设计出3-6-3、4-8、3-5-4、2-8-2……布局,你懂了吧?

下面的代码使用了.span8和.span4,总共横跨12列:

<div class="row">

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

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

</div>

平移列

使用.offset*类可以向右平移列,*用于指定平移的列数。比如,下面代码中的.offset2会导致.span7向右平移2列(见图1-2):

<div class="row">

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

  <div class="span7 offset2">...</div>

</div>

嵌套列

要嵌套列,只要在相应的.span*中再增加一个.row,然后在其中包含与父容器列数相等的.span*即可(见图1-3):

<div class="row">

  <div class="span9">

    Level 1 of column

    <div class="row">

      <div class="span6">Level 2</div>

      <div class="span3">Level 2</div>

    </div>

  </div>

</div>

流式网格系统

流式网格系统的列宽定义使用百分比,而不是像素。

流式网格系统与固定网格系统一样都具有响应能力,可适应不同的屏幕和设备。

只要把某一行的.row改为.row-fluid,这一行就会成为流式的。不改变列的类,是为了简化固定和流式网格的切换。想平移列?跟固定网格中一样,在要平移的列中添加.offset*类即可:

<div class="row-fluid">

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

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

</div>

<div class="row-fluid">

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

  <div class="span4 offset2">...</div>

</div>

流式网格中的嵌套有点不一样。原因是在使用百分比的情况下,每个.row都会把列数重置为12。举个例子,要想在一个.span8中嵌套两个等宽的列,不能使用两个.span4(尽管两个4平分8),而应该使用两个类为.span6的<div>(见图1-4)。这是为保证内容具有响应性,因为我们希望内容100%填满容器:

<div class="row-fluid">

  <div class="span8">

                <div class="row">

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

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

                </div>

  </div>

</div>

容器布局

要在页面中实现固定宽度、居中的布局,只要把内容统统放到<div class="container">...</div>中即可。

如果既想实现流式布局,又想把所有内容都封装到一个容器里,可以使用<div class="container-fluid">...</div>。流式布局适合很多应用、管理界面及其他项目。

<div class="container claearfix">

<div class="col5 column mln">5</div>

<div class="col11 column">11</div>

</div>

<div class="container claearfix">

<div class="col4 column mln">4</div>

<div class="col8 column">8</div>

<div class="col4 column">4</div>

</div>

其中clearfix是用来滁浮动的,而在第一列中加入一个mln是让第一列不具有左边距,如果不用考虑ie6的话,还可以使用:first-child来设置

.container {

  margin: 0 auto;

  width: 940px;

}

.column {

  display: inline;

  float:left;

  margin-left: 20px;

}

.col1 {

  width: 40px;

}

.col2 {

  width: 100px;

}

.col3 {

  width: 160px;

}

.col4 {

  width: 220px;

}

.col5 {

  width: 280px;

}

.col6 {

  width: 340px;

}

.col7 {

  width: 400px;

}

.col8 {

  width: 460px;

}

.col9 {

  width: 520px;

}

.col10 {

  width: 580px;

}

.col11 {

  width: 640px;

}

.col12 {

  width: 700px;

}

.col13 {

  width: 760px;

}

.col14 {

  width: 820px;

}

.col15 {

  width: 880px;

}

.col16 {

  width: 940px;

}

固定布局:960水平居中布局是我们见过最多的布局风格,但随着显屏的增大,1140s布局越来越多,如果使用960s布局的话,那么这种固定布局就很像上面说的Grids。我们来看一个模板

<div class="container clearfix">

        <div id="left" class="sidebar column col4 mln">left sidebar</div>

        <div id="main" class="column col8">main section</div>

        <div id="right" class="sidebar column col4">right sidebar</div>

</div>

 响应式设计

 要让Bootstrap支持响应式布局,必须在<head>标签中添加一个<meta>标签。另外,如果你下载的文件中没有响应式CSS文件,也要单独下载。响应式布局必需的标签和文件如下所示:

<!DOCTYPE html>

<html>

        <head>

              <title>My amazing Bootstrap site!</title>

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

              <link href="/css/bootstrap.css" rel="stylesheet">

              <link href="/css/bootstrap-responsive.css" rel="stylesheet">

        </head>

如果发现Bootstrap没有响应能力,请确保这些标签一个也不少。目前,响应能力还不是默认就有的,因为不是所有网站都需要响应式布局。Bootstrap的作者选择了让开发人员需要时添加,而不是不需要时删除响应功能。

不过,就算你想找的是移动开发框架,Bootstrap仍然是值得考虑的。

浏览器的兼容性

现代主流浏览器都支持Bootstrap,比如说Safari,Google Chrome,Firefox4+,IE7+等

相关推荐