之前有粗略地看过一下Bootstrap的内容,不过那只是走马观花式地看下是怎么用的,以及里面有什么控件,所以就没想着记笔记。现在由于要给部门做分享,所以不得不深入地去学习下,不然仅是简单地说下怎么用,那就无异于“谋杀”别人(浪费别人的时间等于谋财害命——鲁迅)。

1、整体架构 


  下图为Bootstrap的整体架构图,共分为六大部分:

 1.1、12栅格系统

  12栅格系统就是把网页的总宽度平分为12份,我们可以自由按份组合。栅格系统使用的总宽度可以不固定,Bootstrap是按百分比进行平分。(保留15位小数点精度)

  12栅格系统是整个Bootstrap的核心功能,也是响应式设计核心理念的一个实现形式。

1.2、JQuery

  Bootstrap所有的JavaScript插件都依赖于jQuery1.10+,如果要使用这些插件,那就必须引用jQuery库。如果你只用CSS组件,那就可以不引用它了。

1.3、响应式设计

  响应式设计是一个理念,而非功能。Bootstrap的所有内容,都是以响应式设计为设计理念来实现的。

  响应式设计的目的:让页面应该有能力自动响应用户的设备环境。响应式网页设计就是一个网站能够兼容多个终端,而不是为每个终端做一个特定的版本。

  实践方式:由多方面决定,包括弹性网格和布局、图片、CSS媒体查询(media query)的使用等。

2、栅格系统


2.1、实现原理

  通过定义容器大小,平分12份,再调整内外边距,最后再结合媒体查询,就制作出了强大的响应式的栅格系统。Bootstrap默认的栅格系统平分为12份,在使用的时候大家也可以根据情况通过重新编译LESS源码来修改12这个数值。

2.2、工作原理

  •一行数据(row)必须包含在.container中,以便为其赋予合适的对齐方式和内边距。
  •使用行(row)在水平方向创建一组列(column)。
  •具体内容应当放置于列(column)内,而且只有列(column)可以作为行(row)的直接子元素。
  •使用像.row和.col-xs-4这样的样式来快速创建栅格布局。
  •通过设置列padding从而创建列(column)之间的间隔。然后通过为第一列和最后一列设置负值的margin从而抵消掉padding的影响。
  •栅格系统中的列是通过指定1到12的值来表示其跨越的范围的。
 
  Container的作用:
  • 提供宽度限制。container随着页面宽度变化而变化,由于column的宽度是基于百分比,所以它们的宽度不用去管。
  • 提供左右padding,以至于文本内容不会触及浏览器边缘。container左右有15px的padding。如下图:
  
 
  Row:
  • Row是Column的存放容器,Row中最多只能放12个左浮动的Column。
  • Row有个特殊的地方就是左右-15px的margin。这样正好抵消父容器container中的15px的padding。(刚开始我觉得这样不是在瞎折腾吗?但看到后面才发现这正是它的精妙之处)

    Column:
  • column有左右15px的padding,所以位于两边的column有15px的padding,可以使其内容不会碰到container的边界,而同时不同column的内容之间就有了30px的槽,如下图:

    嵌套:

  • 上面提到它的精妙之处就是为嵌套而设计的。由于container和column都有15px的padding,所以在嵌套时column就相当container了,这样就可以实现任意的嵌套。

    列偏移(Offset):
  • 为当前元素增加了左边距(left-margin)。

    列排序(Push and Pull)

设置元素的定位,而非边距(margin)。push和pull必须同时使用,否则会重叠。

3、结束语
  主要参考:1、《深入理解boostarp》

       2、http://www.helloerik.com/the-subtle-magic-behind-why-the-bootstrap-3-grid-works 
        

Bootstrap学习笔记之整体架构的更多相关文章

  1. Bootstrap~学习笔记索引

    回到占占推荐博客索引 bootstrap已经用了有段时间了,感觉在使用上还是比较容易接受的,在开发人员用起来上,也还好,不用考虑它的兼容性,手机,平台,PC都可以有效的兼容. bootstrap官方a ...

  2. Bootstrap学习笔记(二) 表单

    在Bootstrap学习笔记(一) 排版的基础上继续学习Bootstrap的表单,编辑器及head内代码不变. 3-1 基础表单 单中常见的元素主要包括:文本输入框.下拉选择框.单选按钮.复选按钮.文 ...

  3. ODI学习笔记2--ODI产品架构

    ODI学习笔记2--ODI产品架构 ODI产品架构: ODI提供了以下几种管理工具:Designer 用于定义数据转换逻辑,这是最常用的开发工具,大部分的开发任务,包括data store的定义,in ...

  4. bootstrap学习笔记之为导航条添加标题、二级菜单及状态 http://www.imooc.com/code/3120

    为导航条添加标题.二级菜单及状态 加入导航条标题 在Web页面制作中,常常在菜单前面都会有一个标题(文字字号比其它文字稍大一些),其实在Bootstrap框架也为大家做了这方面考虑,其通过" ...

  5. bootstrap学习笔记之基础导航条 http://www.imooc.com/code/3111

    基础导航条 在Bootstrap框中,导航条和导航从外观上差别不是太多,但在实际使用中导航条要比导航复杂得多.我们先来看导航条中最基础的一个--基础导航条. 使用方法: 在制作一个基础导航条时,主要分 ...

  6. Bootstrap学习笔记-布局

    Bootstrap学习笔记-布局 默认是响应式布局,就是你在改变页面的时候也不会出现乱的现象. <html><head> <meta charset="utf- ...

  7. Bootstrap学习笔记博客

    本片博客用于记录之后要用到Bootstrap的学习笔记   概括: Bootstrap 是一个用于快速开发 Web 应用程序和网站的前端框架.Bootstrap 是基于 HTML.CSS.JAVASC ...

  8. bootstrap学习笔记--bootstrap安装环境

    Bootstrap 安装是非常容易的.此文是本人的学习汇总,便于以后查询学习,同时也希望给大家带来帮助. 下载 Bootstrap 您可以从 http://getbootstrap.com/ 上下载 ...

  9. Bootstrap学习笔记系列1-------Bootstrap网格系统

    Bootstrap网格系统 学习笔记 [TOC] 简单网格 先上代码再解释 <!DOCTYPE html> <html> <head> <title>B ...

随机推荐

  1. Team Homework #3 软件工程在北航——IloveSE

    任务要求: 采访以前上过北航  (计算机系/软件学院) 软件工程课的同学.现在上研/工作的也可以. 采访问题如下:* 平均每周花在这门课上的时间 (包括上课/作业/上机)    * 平均写的代码总行数 ...

  2. mui开发

    http://blog.csdn.net/sunhuaqiang1/article/details/46848005

  3. Java团队项目总结

    Java团队项目总结 1.项目实现情况 项目概述: 我们团队项目准备实现一个有关于大富翁有的游戏程序. 大富翁游戏,以经营权为主要的游戏方式,通过购买经营权与架构经营的星级服务来获得最大的利益,当其他 ...

  4. Mysql高级之存储过程

    参考地址1:http://www.2cto.com/database/201411/350819.html 参考地址2:http://www.jb51.net/article/39471.htm my ...

  5. JAVA开发CHECK STYLE

    <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE module PUBLIC "-/ ...

  6. CSS3 绘制360安仔小精灵[原创]

    Css3图形通常由矩形,圆形,椭圆,三角形,梯形等组合而成. 矩形,为display:block的块级元素设定宽高,便能实现, 圆角矩形,椭圆,圆形,则通过border-radius 属性来得到. 圆 ...

  7. LightOJ 1140 How Many Zeroes

    题意:写出一个给定区间的每个数,求出一共写了多少个零. 解法:数位DP,定义dp[len][flag][num]:len的定义为数位的长度,flag定义为前导0和没有前导0的两种状态,num定义为写的 ...

  8. C#简单windows服务

    因为做后台比较多,所以经常需要写一些后台服务.一般的流程是先创建一个服务项目,加入代码.然后打包一个安装程序或者直接用dos命令安装服务.下面是详细内容:    1. 创建windows服务项目.  ...

  9. Git 局域网简单配置

    Git核心:http://code.google.com/p/msysgit/downloads/list?q=full+installer+official+gitTortoiseGit :http ...

  10. web服务器与应用服务器

    WEB服务器与应用服务器的区别: 1.WEB服务器: 理解WEB服务器,首先你要理解什么是WEB?WEB你可以简单理解为你所看到的HTML页面就是WEB的数据元素,处理这些数据元素的应用软件就叫WEB ...