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份,再调整内外边距,最后再结合媒体查询,就制作出了强大的响应式的栅格系统。

用法

  1. 一行数据(row)必须包含在容器中(通常在.container里)
  2. 使用行(row)在水平方向创建一组列(column)
  3. 具体内容应当放置于列(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"

本质实现方式大致如下

1
2
3
4
5
6
7
8
9
10
// 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
}

实现

  1. 声明立即调用的函数
  2. 定义插件类及相关原型方法
  3. 在jQuery上定义插件并重设插件构造函数
  4. 防冲突处理
  5. 绑定各种触发事件

自定义事件

所有的事件都是命名空间化的,即单个事件都要放在某个命名空间下,比如,show.bs.modal。

所有的插件都提供了preventDefault功能,用于阻止继续执行后续的代码,比如,

1
2
3
$('#myModal').on('show.bs.modal'function (e) {  
 if (!data) return e.preventDefault()        // 拒绝显示弹窗
})

禁用响应式布局

Bootstrap是一个移动先行的框架,默认情况下,针对不同的屏幕尺寸,会自动地调整页面,使其在不同尺寸的屏幕上都表现得很好。

禁用步骤

  1. 删除名称为viewpot的meta元素,例如:<meta name="viewport"……/>
  2. 为.container设置一个固定的宽度值,从而覆盖框架的默认width设置,例如width: 970px!important
  3. 如果使用了导航条组件,还需要移除所有的折叠行为和展 开行为
  4. 对于栅格布局,额外增加.col-xs-*样式,或替换.col-md-* 和.col-lg-*样式

本节地址:http://neverc.cnblogs.com/p/4779890.html

Bootstrap(2)整体架构的更多相关文章

  1. [Bootstrap]7天深入Bootstrap(2)整体架构

    大多数Bootstrap的使用者都认为Bootstrap只提供了CSS组件 和JavaScript插件,其实CSS组件和JavaScript插件只是Bootstrap框架的表现形式而已,它们都是构建在 ...

  2. 《深入理解bootstrap》读书笔记:第二章 整体架构

    一.  整体架构   1. CSS-12栅格系统 把网页宽度均分为12等分(保留15位精度)--这是bootstrap的核心功能. 2.基础布局组件 包括排版.按钮.表格.布局.表单等等. 3.jQu ...

  3. Bootstrap学习笔记之整体架构

    之前有粗略地看过一下Bootstrap的内容,不过那只是走马观花式地看下是怎么用的,以及里面有什么控件,所以就没想着记笔记.现在由于要给部门做分享,所以不得不深入地去学习下,不然仅是简单地说下怎么用, ...

  4. Bootstrap源码分析系列之整体架构

    作为一名合格的前端工程师,你肯定听说过Bootstarp框架.确实可以说Bootstrap框架是最流行的前端框架之一.可是也有人说Bootstrap是给后端和前端小白用的,我认为只要学习它能给我们前端 ...

  5. Django整体架构

    Django整体架构 用户能够访问到的所有的资源 都是程序员提前暴露好的, 如果没有暴露 用户就永远访问不了 用户能够访问到的所有的资源 都是程序员提前暴露好的, 如果没有暴露 用户就永远访问不了 一 ...

  6. Kafka Producer源码解析一:整体架构

    一.Producer整体架构 Kafka Producer端的架构整体也是一个生产者-消费者模式 Producer线程调用send时,只是将数据序列化后放入对应TopicPartition的Deque ...

  7. 【深入浅出jQuery】源码浅析--整体架构

    最近一直在研读 jQuery 源码,初看源码一头雾水毫无头绪,真正静下心来细看写的真是精妙,让你感叹代码之美. 其结构明晰,高内聚.低耦合,兼具优秀的性能与便利的扩展性,在浏览器的兼容性(功能缺陷.渐 ...

  8. Underscore 整体架构浅析

    前言 终于,楼主的「Underscore 源码解读系列」underscore-analysis 即将进入尾声,关注下 timeline 会发现楼主最近加快了解读速度.十一月,多事之秋,最近好多事情搞的 ...

  9. jQuery 2.0.3 源码分析core - 整体架构

    拜读一个开源框架,最想学到的就是设计的思想和实现的技巧. 废话不多说,jquery这么多年了分析都写烂了,老早以前就拜读过, 不过这几年都是做移动端,一直御用zepto, 最近抽出点时间把jquery ...

随机推荐

  1. SQL Server :理解IAM 页

    原文:SQL Server :理解IAM 页 在以前的文章里,我们讨论了数据页,GAM和SGAM,还有PFS页.今天我们一起来讨论下索引分配映射(Index Allocation Map:IAM)页. ...

  2. Windows Phone开发(14):数据模板

    原文:Windows Phone开发(14):数据模板 数据模板,如果你仅仅听到这个名词,你一定很迷惑,什么来的?用来干什么的?不急,亲,今天,我们一起来探索一下吧. 用白话文说,数据模板就是用来规范 ...

  3. petshop4.0 其中详细解释(系统架构)

    前言:PetShop它是一个例子.微软用它来展示.Net容量企业系统开发.业界有很多.Net与J2EE争议.微软许多数据PetShop和Sun的PetStore从.这样的争论是不可避免的带有强烈的商业 ...

  4. div 浮动框

  5. [windows phone] 教你如何使地图动画缩放

    原文:[windows phone] 教你如何使地图动画缩放 说明 本篇将介绍如何将地图以动画显示呈现,在以下的范例介绍中可以看到有动画跟没动画的差别,如果你的地图还是很单调的话,不仿加上这个设计,让 ...

  6. Linux安装jdk 8和环境变量配置

    1.下载jdk 地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 2.将刚刚 ...

  7. JAVA学习课第二十八届(多线程(七))- 停止-threaded多-threaded面试题

    主密钥 /*  * wait 和 sleep 差别?  * 1.wait能够指定时间也能够不指定  * sleep必须指定时间  * 2.在同步中,对CPU的运行权和锁的处理不同  * wait释放运 ...

  8. 轮播图片 高效图片轮播,两个imageView实现

    该轮播框架的优势: 文件少,代码简洁 不依赖任何其他第三方库,耦合度低 同时支持本地图片及网络图片 可修改分页控件位置,显示或隐藏 自定义分页控件的图片,就是这么个性 自带图片缓存,一次加载,永久使用 ...

  9. Windows Phone 8 - 建立App专属联络人资讯(ContactStore)

    原文:Windows Phone 8 - 建立App专属联络人资讯(ContactStore) 在WP7的时候介绍了如何操作联络人的功能,例如:<Windows Phone 7 - 存取联络人与 ...

  10. java反编译

    反编译工具下载地址 http://download.csdn.net/detail/u011110110/8621653 反编译方法: 第一步:你先把下载的包的后缀名改成.zip第二步:到网上搜索de ...