Bootstrap 来自 Twitter,基于 HTML、CSS、JavaScript,是目前最受欢迎的前端框架,它简洁灵活,使得 Web 开发更加快捷。
在这里我们看下 bootstrap 以及一些 html、css 等相关的内容。
简介
Bootstrap 是由 Twitter 的 MARK OTTO 和 Jacob Thornton 所设计和建立,在开源后,社区惊人地活跃,代码版本进化非常快速,而且官方文档质量极其高,并涌现了许多基于 Bootstrap 建设的网站,其界面清新、简洁,排版利落大方。
目前的最新版本已经快到 V4 了,可以参考 www.getbootstrap.com,另外可以查看中文网站 Bootstrap 中文网 ,其中后者包括了一些常用的网站,比如编码规范、jQuery API 中文文档、经典的网站实例等等。
安装
可以直接从上述的中文网站中下载 《用于生产环境的 Bootstrap》,以 V3 为例,解压后的目录结构如下:
对于 Nginx,可以直接将 root 指向该目录即可。
栅格系统
也被称为网格系统 (Grid System),Bootstrap 提供了一套响应式、移动设备优先的流式网格系统,随着屏幕或 viewport 尺寸的增加,系统会自动分为最多 12 列。
其在 CSS 中的定义如下,会根据屏幕的大小来决定 width 大小。
如下是网格系统的定义。
网格系统总共提供了如下的四种。
与此相关的详细内容,也可以参考如下。
假设有如下内容。
当不同的屏幕大小时,会有不同的表格系统,内容如下。
屏幕大于 992px
.col-md-8 和.col-md-4 还处于作用范围内。
屏幕范围 769px~992px
.col-md- 已失效,而 .col-sm- 还处在作用范围内。
屏幕小于 768px
.col-sm-已失效只有 .col-xs- 不受屏幕宽度影响,这时候就由 .col-xs- 起作用。
常用工具
除了上述的表格系统,Bootstrap 提供了一些辅助类,以便更快地实现对移动设备友好的开发。
这些可以通过合大型、小型和中型设备,实现内容对设备的显示和隐藏,主要包括了两类:.hidden-print、.hidden-xs、.visible-xs-* 等。
附加导航(Affix)插件允许某个 <div> 固定在页面的某个位置,也可以在打开或关闭使用该插件之间进行切换。一个常见的例子是社交图标。它们将在某个位置开始,但当页面点击某个标记,该 <div> 会锁定在某个位置,不会随着页面其他部分一起滚动。
另外,可以使用 ScrollSpy (滚动监听)。
可参考 Understanding Bootstrap’s Affix and ScrollSpy plugins,其示例可以 参考本地 内容。
CSS, Cascading Style Sheets
HTML 标签原本被设计为用于定义文档内容,例如那些是标题、各个段落的内容等。而 CSS 样式,则定义了如何显示 HTML 元素,如字体大小、颜色属性等。样式通常保存在外部的 .css 文件中,这样就可以通过仅仅编辑一个简单的 CSS 文档,从而改变页面的布局和外观。
CSS 规则由两个主要的部分构成:选择器 + 一条或多条声明;选择器指定了需要改变样式的 HTML 元素,声明由一个属性和一个值组成,可以有多个声明组成。
属性和值通过 “:” 分隔,各个声明通过 “;” 分隔,为了方便阅读,通常每行只定义了一个声明,示例如下:
网页嵌入方式
假设,由如下的一段 HTML 代码。
在 HTML 代码中可以通过如下的三种方式嵌入到网页中。
1. 外链式CSS
编写一个 .css 文件,假设命名为 style.css 内容如下:
然后在 HTML 代码的 head 标签对中添加,内容如下:
2. 内嵌式CSS
可以直接在 title 标签中添加。
3. 直接式CSS
也就是直接为 DIV 标签添加 style 属性如下:
id 和 class
id 和 class 的定义方式是不同的,分别通过 ‘#’ 和 ‘.’ 进行定义;然后在标签中通过 id=”foobar” 或者 class=”foobar” 表示。
ID 使用原则
通常来说,ID 具有唯一性,不过现在的浏览器在多个 ID 时仍然可以保证样式生效。通常在写网页时,大的结构用 ID,如:logo (#logo)、导航 (#nav)、主体内容 (#body)、版权 (#copyright) 等。
另外,还有一种情况:当通过 js 作用一个层,以实现某种效果时;这也是由 ID 的唯一性决定的。
Class 使用原则
在 css 定义中,实际可以无限次的重复使用 Class,常用于结构内部,这样做的好处是有利于网站代码的后期维护与修改。
样式的插入
插入样式表的方法有三种: 外部样式表、内部样式表、内联样式。
外部样式表
当很多页面都需要相同的样式时,最后使用外部样式,这样可以直接通过改变一个文件来改变整个站点的外观。在使用时,每个页面使用 <link> 标签链接到样式表,而且 <link> 标签要在文件的头部:
此时,浏览器会从文件 foobar.css 中读到样式声明,并根据它来格式文档。如下是一个示例:
另外,需要注意的是,不要在属性值与单位之间有空格,例如 “margin-left: 20 px” 而不是 “margin-left: 20px”,那么在某些浏览器是无法工作的。
内部样式表
常见的场景是当单个文档需要特殊的样式时,就应该使用内部样式表。此时,可以使用 <style> 标签在文档头部定义内部样式表,例如:
内联样式
内联样式是在相关的标签内使用样式 (style) 属性,可以包含任何 CSS 属性。由于此时要将样式和内容混杂在一起,从而会降低样式表的许多优势,因此要慎用这种方法,通常在样式仅需要在一个元素上应用一次时才会使用。
多重样式
样式的属性值会从上层的样式表中继承过来,一般会按照浏览器缺省设置、外部样式表、内部样式表、内联样式的顺序,也就是越靠后的优先级越高。
也就是说,按照上面的顺序,后者会继承前者的属性,但是如果存在则会覆盖,类似于 C++ Java 这种面向对象语言中的继承机制。
分组、嵌套
通常在样式表中有很多具有相同样式的元素,为了尽量减少代码,可以使用分组选择器,每个选择器用逗号分隔。
嵌套选择器可以对多层的选择器定义样式,适用于选择器内部的选择器的样式。
Javascript
绑定事件
在 JS 中有三种绑定事件的方法:DOM 元素中直接绑定;JS 代码中绑定;绑定事件监听函数。
1. DOM 元素绑定
这里的 DOM 元素可以直接理解为 HTML 标签,其语法如下:
其中,onMETHOD 为事件名称,例如,onclick 鼠标单击、ondouble 鼠标双击、onmouseover 鼠标移入、onmouseout 鼠标移出等。例如:
2. JavaScript 绑定事件的方法
可以使 JavaScript 代码与 HTML 标签分离,文档结构清晰,便于管理和开发。
绑定事件的语法如上所示,其中 elementObject 为 DOM 对象、onXXX 为事件名称。
3. 绑定事件监听函数。
绑定事件的另一种方法是用 addEventListener() 或 attachEvent() 来绑定事件监听函数。
杂项
(function($){…})(jQuery);
JS 是支持匿名函数的,其声明和一次调用可以使用如下方式:
而 (function($){…})(jQuery) 功能相同,之所以形参使用 $,是为了不与其它库冲突,其功能相当于:
另外,有如下的三种写法,用来在文档载入完成后执行函数。
ECharts
百度开发的 ECharts ,一个很不错的图表绘制示例,可以选择包含那些类型的包、是否压缩等,而且文档、示例等都非常丰富。另外一个与 ECharts 类似的是 www.highcharts.com 。
如下是一个最简单的示例,只需要通过 echarts.init() 方法初始化一个 echarts 实例并通过 setOption 方法生成一个简单的柱状图。
参考
常见示例
网站
在此列举一些常见的网站。