[Bootstrap]7天深入Bootstrap(2)整体架构
大多数Bootstrap的使用者都认为Bootstrap只提供了CSS组件 和JavaScript插件,其实CSS组件和JavaScript插件只是Bootstrap框架的表现形式而已,它们都是构建在基础平台之上的。
本节目录:
整体架构

12栅格系统
这是整个bs最核心的功能,也是响应式设计核 心理念的一个实现形式。
基础布局组件
bs提供了多种基础布局组 件,比如排版、代码、表格、按钮、表单等
jQuery
bs所有的JavaScript插件都依赖于jQuery1.10+,如果 要使用这些插件,那就必须引用jQuery库。
响应式设计
响应式设计是一个理念,而非功能,bs的所有内容,都是以响应式设计为设计理念来实现的。
CSS组件
bs众多的组件,让其使用起来非常方便,CSS和JavaScript插件中间有5个箭头,表示这5个相关的组件(插件)是有直接关系的。
JavaScript插件
通过js插件,可以实现更复杂的页面逻辑。
栅格系统
实现原理
栅格系统的实现原理非常简单,仅仅是通过定义容器大小,平分12份,再调整内外边距,最后再结合媒体查询,就制作出了强大的响应式的栅格系统。
用法
- 一行数据(row)必须包含在容器中(通常在.container里)
- 使用行(row)在水平方向创建一组列(column)
- 具体内容应当放置于列(column)内
响应式栅格
在bs的栅格系统中,根据宽度将浏览器分为4种。其值分别是:自动(100%)、750px、970px、 1170px。
对应的样式为超小(xs)、小型(sm)、中型屏幕 (md)、大型 (lg)
本质通过媒体查询定义最小宽度实现。所以,向大兼容,向小不兼容!
列偏移
栅格系统的列偏移(offset)功能不必再定义margin值。使用.col-md-offset-*形式的样式就可以将列偏移到右侧。
本质通过margin-left就实现出这个效果。
列排序
列排序(push与pull)其实就是改变列的方向,也就是改变左右浮动,并且设置浮动的距离。
通过push推和pull拉,本质通过left和right来改变位置。
CSS组件架构
AO模式:A表示Append,即“附加”的意思;O表示Overwrite,即“重写”的意思。

基础样式
任何一个CSS组件在刚开始都要先定义基本样式。通过基础样式来定义统一的字号、背景色。
颜色样式
5种基本颜色分别是:primary(重点蓝)、success(成功绿)、info(信息蓝)、warning(警告橙)、danger(危险红)。
定义颜色与组件的特性有关,面板panel就只需要定义边框的颜色就可以了,而按钮不仅需要定义边框颜色,还需要定义背景色以及文本颜色。
尺寸样式
有4种基本尺寸:超小(xs)、小型(sm)、普通、大型(lg)。
状态样式
高亮可用的时候用active样式,禁用的时候用disabled样式
这种类型的样式一般是处理元素的阴影、鼠标形状、透明 度、虚框等方面的内容。
特殊元素样式 并列元素 嵌套子元素
所谓特殊元素,即特定类型的组件一般只使用某一种或者几种固定的元素。
比如alert警告框内一般只用警告标题、内容和关闭链接元素,再如导航(nav)里的经常用的li元素。
动画样式
在bs里,动画样式应用得不是很多,只在进度条组件里会使用到。(这里不包括bs的trans插件)
只需要在progress样式上应 用一个active样式,即可开启动画过渡效果。
JS插件架构
HTML布局规则
默认情况下,所有的插件都可以通过设置特定的HTML代码和 相应的属性(或自定义属性)来实现。
如:data-dismiss="alert",data-toggle="dropdown",data-toggle="tab"
本质实现方式大致如下
// alert插件类及原型方法的定义
// 定义选择器,所有符合该自定义属性的元素都可以触发下面的事件
var dismiss = '[data-dismiss="alert"]';
var Alert = function (el) {
// 传入元素,如果元素内部有dismiss上设置的自定义属性,则click事件会触发原型上的close方法
$(el).on('click', dismiss, this.close);
}
Alert.prototype.close = function (e) {
//todo close
}
实现
- 声明立即调用的函数
- 定义插件类及相关原型方法
- 在jQuery上定义插件并重设插件构造函数
- 防冲突处理
- 绑定各种触发事件
自定义事件
所有的事件都是命名空间化的,即单个事件都要放在某个命名空间下,比如,show.bs.modal。
所有的插件都提供了preventDefault功能,用于阻止继续执行后续的代码,比如,
$('#myModal').on('show.bs.modal', function (e) {
if (!data) return e.preventDefault() // 拒绝显示弹窗
})
禁用响应式布局
Bootstrap是一个移动先行的框架,默认情况下,针对不同的屏幕尺寸,会自动地调整页面,使其在不同尺寸的屏幕上都表现得很好。
禁用步骤
- 删除名称为viewpot的meta元素,例如:<meta name="viewport"……/>
- 为.container设置一个固定的宽度值,从而覆盖框架的默认width设置,例如width: 970px!important
- 如果使用了导航条组件,还需要移除所有的折叠行为和展 开行为
- 对于栅格布局,额外增加.col-xs-*样式,或替换.col-md-* 和.col-lg-*样式
本节地址:http://neverc.cnblogs.com/p/4779890.html
[Bootstrap]7天深入Bootstrap(2)整体架构的更多相关文章
- Bootstrap源码分析系列之整体架构
作为一名合格的前端工程师,你肯定听说过Bootstarp框架.确实可以说Bootstrap框架是最流行的前端框架之一.可是也有人说Bootstrap是给后端和前端小白用的,我认为只要学习它能给我们前端 ...
- 《深入理解bootstrap》读书笔记:第二章 整体架构
一. 整体架构 1. CSS-12栅格系统 把网页宽度均分为12等分(保留15位精度)--这是bootstrap的核心功能. 2.基础布局组件 包括排版.按钮.表格.布局.表单等等. 3.jQu ...
- Bootstrap学习笔记之整体架构
之前有粗略地看过一下Bootstrap的内容,不过那只是走马观花式地看下是怎么用的,以及里面有什么控件,所以就没想着记笔记.现在由于要给部门做分享,所以不得不深入地去学习下,不然仅是简单地说下怎么用, ...
- Bootstrap(2)整体架构
Bootstrap(2)整体架构 大多数Bootstrap的使用者都认为Bootstrap只提供了CSS组件 和JavaScript插件,其实CSS组件和JavaScript插件只是Bootstrap ...
- Django整体架构
Django整体架构 用户能够访问到的所有的资源 都是程序员提前暴露好的, 如果没有暴露 用户就永远访问不了 用户能够访问到的所有的资源 都是程序员提前暴露好的, 如果没有暴露 用户就永远访问不了 一 ...
- Kafka Producer源码解析一:整体架构
一.Producer整体架构 Kafka Producer端的架构整体也是一个生产者-消费者模式 Producer线程调用send时,只是将数据序列化后放入对应TopicPartition的Deque ...
- bootstrap学习--什么是bootstrap
2011年,twitter的“一小撮”工程师为了提高他们内部的分析和管理能力,用业余时间为他们的产品构建了一套易用.优雅.灵活.可扩展的前端工具集--BootStrap.Bootstrap由MARK ...
- Tomcat整体架构分析
下面让我们来看看Tomcat容器的整体结构: 本文的目的是覆盖这张图中所涉及的主要请求处理组件.而上图中的一些高级主题如集群和安全则不是在本文讨论的范围之内. 本图中,Service, Host, C ...
- 【深入浅出jQuery】源码浅析--整体架构
最近一直在研读 jQuery 源码,初看源码一头雾水毫无头绪,真正静下心来细看写的真是精妙,让你感叹代码之美. 其结构明晰,高内聚.低耦合,兼具优秀的性能与便利的扩展性,在浏览器的兼容性(功能缺陷.渐 ...
随机推荐
- Andriod Studio 开发环境安装和配置
Android Studio安装配置详细步骤(图文):http://www.2cto.com/kf/201604/500642.html第一次使用Android Studio时你应该知道的一切配置 : ...
- https SSL主流数字证书都有哪些格式?
主流数字证书都有哪些格式? 一般来说,主流的Web服务软件,通常都基于两种基础密码库:OpenSSL和Java. Tomcat.Weblogic.JBoss等,使用Java提供的密码库.通过Java的 ...
- 使用 T-SQL 计算当日日期、本周第一天与最后一天
--当日日期 ); SET @Today = DATENAME(YEAR, GETDATE()) + '-' + DATENAME(MONTH, GETDATE()) + '-' + DATENAME ...
- 实例详解 DB2 排序监控和调优
实例详解 DB2 排序监控和调优http://automationqa.com/forum.php?mod=viewthread&tid=2882&fromuid=2
- redis的主从复制部署和使用
reids一种key-value的缓存数据库目前非常流行的被使用在很多场景,比如在数据库读写遇到瓶颈时缓存且读写分离会大大提升这块的性能,下面我就说说redis的主从复制 首先需要启动多个redis实 ...
- Android permission 访问权限大全
程序执行需要读取到安全敏感项必需在androidmanifest.xml中声明相关权限请求, 完整列表如下: android.permission.ACCESS_CHECKIN_PROPERTIES ...
- Oracle数据库入门——如何根据物化视图日志快速刷新物化视图
Oracle物化视图的快速刷新机制是通过物化视图日志完成的.Oracle如何通过一个物化视图日志就可以支持多个物化视图的快速刷新呢,本文简单的描述一下刷新的原理. 首先,看一下物化视图的结构:SQL& ...
- debian+apache+acme_tiny+lets-encrypt配置笔记
需要预先将需要申请ssl的域名指向到服务器,此方法完全通过api实现,好处是绿色无污染,不需要注册账号,不会泄露私人信息环境为 debian7+apache apt-get install apach ...
- 将Word转为带书签的PDF
将word文档存为PDF可以带来很多便利,在这里就不多说了.下面讨论一下转换方法. 我现在使用的是Word2010+Acrobat9,所以这里仅讨论使用这种组合的转换方法. 在Word2010中有两种 ...
- 用gameMaker做个小游戏
看下面这个课程链接,半小时学会 http://study.163.com/course/courseMain.htm?courseId=352004#/courseMain 这是我做的:http:// ...