`
zzc1684
  • 浏览: 1222899 次
  • 性别: Icon_minigender_1
  • 来自: 广州
文章分类
社区版块
存档分类
最新评论

Bootstrap栅格系统研究

阅读更多

上一篇文章中已经对网页的栅格系统做了大概的说明,有了这个铺垫在来看Bootstrap的栅格系统就比较容易了。

Bootstrap的栅格系统为12列(最大列数)形成一个940px宽的容器。

Bootstrap的栅格系统有俩种,一种是固定式的,一种是流式的(也就是可适应宽度的)。

1.固定式栅格

   固定式栅格系统每列的宽度(width)及列与列间的间距(margin)都是固定的,列宽为60px,列间距为20px。如下图:

 

在Bootstrap中定义了俩个样式。容器为 .row ,可在容器中加入合适数量的 .span* 列。

用法如下:

1.<div class="row">
2.<div class="span4">...</div>
3.<div class="span8">...</div>
4.</div>

用 法非常类似<table> 标签。"<div class='row'>"相当于是<table>,"<div class='span4'>"、"<div class='span8'>" 相当于"<td cols='4'>"、"<td cols='8'>"。注意:由于默认是12列的栅格,所有 .span* 列所跨越的栅格数之和最多是12(或者等于其父容器的栅格数)。

 

源码的css样式如下:

1.[class*="span"] {
2.floatleft;
3.min-height1px;
4.margin-left20px;
5.}

上面是个属性选择器。定义属性名为"class"的值包含子串"span",也就是span1、span2、span3....。"margin-left:20px"定义了每列的左边距为20px,也就是上图中的间距20px。

 

1..row {
2.margin-left-20px;
3.*zoom: 1;
4.}

 .row是定义栅格容器的,可以看到其中并没有定义宽度(width),所以其宽度就由内部栅格的总列宽决定。"margin-left:-20px" 定义容器的左边距负的20px(-20px),作用是抵销第1列前面的20px,在上图中已经标出。

 

01..span12 {
02.width940px;
03.}
04. 
05..span11 {
06.width860px;
07.}
08. 
09..span10 {
10.width780px;
11.}
12. 
13..span9 {
14.width700px;
15.}
16. 
17..span8 {
18.width620px;
19.}
20. 
21..span7 {
22.width540px;
23.}
24. 
25..span6 {
26.width460px;
27.}
28. 
29..span5 {
30.width380px;
31.}
32. 
33..span4 {
34.width300px;
35.}
36. 
37..span3 {
38.width220px;
39.}
40. 
41..span2 {
42.width140px;
43.}
44. 
45..span1 {
46.width60px;
47.}

span1、span2...很像表格元素<table>中<td>的cols,即合并多少列。span1就是合并1列(即不合并),span2就是合并2列,span3是合并3列...。那为什么span2的宽度是140px那,我们可以算下:

 

先 看下span2。由于上面的属性选择器已经规定了span1、span2.....span12  的左边距都是20px,所以span2自身有20px的左边距(margin-left:20px),也就是上图中第3列与第4列的间距。所以对于上面 图来说span2的宽度就是等于=第4列的宽度60px+第5列的宽度60px+第4列与第5列的间距20px =140px。span3的算法也是如此。   最后总结的公式就是spanN的宽度(width) = N*60 + (N-1)*20。大家可以验证下。

 

 

偏移列

把列向右移动可使用 .offset* 类。每个类都给列的左边距增加了指定单位的列。例如,.offset4 将 .span4 右移了4个列的宽度。

源码如下:

01..offset12 {
02.margin-left980px;
03.}
04. 
05..offset11 {
06.margin-left900px;
07.}
08. 
09..offset10 {
10.margin-left820px;
11.}
12. 
13..offset9 {
14.margin-left740px;
15.}
16. 
17..offset8 {
18.margin-left660px;
19.}
20. 
21..offset7 {
22.margin-left580px;
23.}
24. 
25..offset6 {
26.margin-left500px;
27.}
28. 
29..offset5 {
30.margin-left420px;
31.}
32. 
33..offset4 {
34.margin-left340px;
35.}
36. 
37..offset3 {
38.margin-left260px;
39.}
40. 
41..offset2 {
42.margin-left180px;
43.}
44. 
45..offset1 {
46.margin-left100px;
47.}

.offset1即移动一列,.offset2移动俩列。margin-left是如何得出来的,以.offset1移动一列为例,如下图:

 

上图演示了从第2列偏移1列到第3列。未移动前第2列的margin-left为20px,移动后由于占了俩个间距和一个列宽,所以最终的margin-left就是100px。

 

2.流式栅格

流式也固定式栅格的区别就是,每列的宽度是按照百分比来瓜分外围包裹的宽度的,看下源码:

1..row-fluid {
2.width100%;
3.*zoom: 1;
4.}

定义容器的宽度完全填充包裹外围容器的宽度。

 

1..row-fluid [class*="span"]:first-child {
2.margin-left0;
3.}

清空第一列前面的边距,与固定式中的margin-left:-20px效果是一样的

 

01..row-fluid [class*="span"] {
02.displayblock;
03.floatleft;
04.width100%;
05.min-height30px;
06.margin-left2.127659574468085%;
07.*margin-left2.074468085106383%;
08.-webkit-box-sizing: border-box;
09.-moz-box-sizing: border-box;
10.box-sizing: border-box;
11.}

我们这里只关注与宽度有关的代码。上面代码中margin-left: 2.127659574468085% 以百分比设置列的左边距(margin-left),约等于2.12%, 

我们以上面固定式中的940px 为例来算下大约是多少px。2.12% * 940 = 19.928 。 与20px很接近。  

 

01..row-fluid .span12 {
02.width100%;
03.*width99.94680851063829%;
04.}
05. 
06..row-fluid .span11 {
07.width91.48936170212765%;
08.*width91.43617021276594%;
09.}
10. 
11..row-fluid .span10 {
12.width82.97872340425532%;
13.*width82.92553191489361%;
14.}
15. 
16..row-fluid .span9 {
17.width74.46808510638297%;
18.*width74.41489361702126%;
19.}
20. 
21..row-fluid .span8 {
22.width65.95744680851064%;
23.*width65.90425531914893%;
24.}
25. 
26..row-fluid .span7 {
27.width57.44680851063829%;
28.*width57.39361702127659%;
29.}
30. 
31..row-fluid .span6 {
32.width48.93617021276595%;
33.*width48.88297872340425%;
34.}
35. 
36..row-fluid .span5 {
37.width40.42553191489362%;
38.*width40.37234042553192%;
39.}
40. 
41..row-fluid .span4 {
42.width31.914893617021278%;
43.*width31.861702127659576%;
44.}
45. 
46..row-fluid .span3 {
47.width23.404255319148934%;
48.*width23.351063829787233%;
49.}
50. 
51..row-fluid .span2 {
52.width14.893617021276595%;
53.*width14.840425531914894%;
54.}
55. 
56..row-fluid .span1 {
57.width6.382978723404255%;
58.*width6.329787234042553%;
59.}

上面的代码是设置列的宽度(width),其中的百分比的得来也是按照固定式中的原则算的。

 

分享到:
评论

相关推荐

    Bootstrap栅格系统.pptx

    Bootstrap栅格系统

    Bootstrap自动适应PC、平板、手机的Bootstrap栅格系统

    Bootstrap栅格系统是一种基于12列的响应式布局框架,旨在帮助开发者构建适应不同设备屏幕大小的网页。这种系统能够确保网页在PC、平板、手机等不同设备上呈现出优雅的自适应效果,优化用户体验。Bootstrap栅格系统的...

    bootstrap栅格系统响应式布局

    Bootstrap栅格系统是Web开发中的一个关键工具,它允许开发者创建具有高度响应性和自适应性的网页布局。这个系统是Bootstrap框架的核心组成部分,旨在简化多设备显示的复杂性,确保网页在PC、平板和手机等不同屏幕...

    03.Bootstrap栅格系统用法.rar

    这个压缩包“03.Bootstrap栅格系统用法.rar”显然包含了关于如何有效利用Bootstrap栅格系统的教学资源,例如视频文件“03.Bootstrap栅格系统用法.mp4”。在这里,我们将深入探讨Bootstrap栅格系统的基本原理、其在C#...

    bootstrap栅格系统.zip

    Bootstrap栅格系统是Web开发中最常用的前端框架之一,由Twitter开发并开源,它提供了一套响应式、移动设备优先的流式布局工具,使得开发者能够快速构建美观且适应各种屏幕尺寸的网页。这个名为"bootstrap栅格系统....

    响应式框架Bootstrap栅格系统的实例

    Bootstrap栅格系统实例详解 Bootstrap栅格系统是Bootstrap框架中的一种响应式布局系统,它可以根据不同的屏幕尺寸和设备类型来调整页面的布局和样式。下面我们来详解Bootstrap栅格系统的实例。 一、Bootstrap栅格...

    任务3 Bootstrap栅格系统.doc

    Bootstrap栅格系统是Web开发中一个非常重要的工具,它是一个响应式的布局框架,能够帮助开发者快速构建适应不同屏幕尺寸的网站。在“任务3 Bootstrap栅格系统”中,我们将学习如何利用Bootstrap栅格系统实现招商银行...

    02.Bootstrap栅格系统原理.rar

    Bootstrap栅格系统是Web开发中一个非常重要的概念,尤其对于使用C#进行后端开发的程序员来说,理解并掌握这个前端框架的栅格系统能够帮助他们构建响应式、跨平台的用户界面。Bootstrap是由Twitter开发并开源的一个...

    Bootstrap栅格源码.zip

    Bootstrap栅格系统是网页开发中的一个关键组成部分,它是一种用于创建响应式布局的工具,能够帮助开发者轻松地在不同屏幕尺寸上对齐和排列内容。Bootstrap框架由Twitter开发,是目前最流行、最广泛使用的前端开发...

    CSS框架(如Bootstrap, TailwindCSS):Bootstrap栅格系统详解.docx

    CSS框架(如Bootstrap, TailwindCSS):Bootstrap栅格系统详解.docx

    Bootstrap栅格系统的使用详解

    Bootstrap栅格系统是基于响应式设计原则开发的一套用于页面布局的网格系统。它允许开发者快速地创建一个响应式的网站布局,这个系统适应不同尺寸的屏幕设备,包括手机、平板、笔记本电脑和台式机等。Bootstrap栅格...

    Bootstrap栅格系统使用方法及页面调整变形的解决方法

    Bootstrap栅格系统使用方法及页面调整变形的解决方法 Bootstrap栅格系统是Bootstrap框架中的一个非常重要的组件,它可以帮助开发者快速地创建响应式页面布局。栅格系统的出现使得Bootstrap的跨设备布局显示变得...

    Bootstrap栅格系统简单实现代码

    Bootstrap栅格系统简单实现代码 Bootstrap栅格系统是Bootstrap框架中的一种布局系统,它可以帮助开发者快速创建响应式的网页布局。栅格系统的主要功能是将页面拆分为多个部分,各个部分可以根据不同的屏幕尺寸和...

    Bootstrap栅格系统的使用和理解2

    Bootstrap栅格系统是一种流行的网页布局工具,用于创建响应式的网页设计。这个系统基于12列的网格模型,允许开发者在不同设备和屏幕尺寸上灵活地安排内容。在Bootstrap框架中,栅格系统的设计目的是使页面内容能够...

    bootstrap栅格系统示例代码分享

    Bootstrap栅格系统示例代码分享 Bootstrap栅格系统是Bootstrap框架中的一种布局方式,通过使用栅格系统,可以快速创建响应式布局。下面将详细介绍Bootstrap栅格系统的示例代码和应用。 栅格系统的基本概念 栅格...

    bootstrap栅格系统

    栅格系统 更好地帮助你学习前端

    bootstrap.zip---栅格系统源码

    Bootstrap栅格系统是Web开发中广泛使用的前端框架,它的核心特性之一就是强大的响应式栅格布局。这个"bootstrap.zip"压缩包包含的就是Bootstrap栅格系统的源码,这为我们提供了深入理解其工作原理的机会。 ...

    栅格系统_栅格系统_bootstrap_源码

    Bootstrap栅格系统是目前最流行且广泛使用的框架之一,它通过行(row)和列(column)的组合,帮助开发者轻松创建响应式的、动态布局的网站。 Bootstrap栅格系统的核心理念是将页面分为12个等宽的列。这些列可以...

    第五章之BootStrap 栅格系统

    本节课我们主要学习一下 Bootstrap 的栅格系统,提供了一套响应式、移动设备优先的流式栅格系统。 一.移动设备优先 在 HTML5 的项目中,我们做了移动端的项目。它有一份非常重要的 meta,用于设置屏幕和设备等宽...

Global site tag (gtag.js) - Google Analytics