前    言

Bootstrap

   Bootstrap 包含了一个响应式的、移动设备优先的、不固定的网格系统,可以随着设备或视口大小的增加而适当地扩展到 12 列。它包含了用于简单的布局选项的预定义类,也包含了用于生成更多语义布局的功能强大的混合类。

  Bootstrap框架使用方便,有一部分是因为它的网格布局,可以更快的制作响应式布局和媒体查询,减少时间。今天就带大家看一看网格布局如何使用。

1.1栅格系统的工作原理

1、行必须放置在 .container class 内,以便获得适当的对齐(alignment)和内边距(padding)。
2、使用行来创建列的水平组。
3、内容应该放置在列内,且唯有列可以是行的直接子元素。
4、预定义的网格类,比如 .row 和 .col-xs-4,可用于快速创建网格布局。LESS 混合类可用于更多语义布局。
5、列通过内边距(padding)来创建列内容之间的间隙。该内边距是通过 .rows 上的外边距(margin)取负,表示第一列和最后一列的行偏移。
6、网格系统是通过指定您想要横跨的十二个可用的列来创建的。例如,要创建三个相等的列,则使用三个 .col-xs-4。

1.2媒体查询

媒体查询

  媒体查询是非常别致的"有条件的 CSS 规则"。它只适用于一些基于某些规定条件的 CSS。如果满足那些条件,则应用相应的样式。

比如我们平时在做媒体查询时,会在CSS 样式中设置相应的屏幕宽度既内容所占的大小。看下面例子:

  1. //在屏幕宽度小于768PX时对应的Css样式
  2. @media screen and (max-width: 768px) {
  3. //css样式
  4. }
  5. //在屏幕宽度大于768PX时对应的Css样式
  6. @media screen and (min-width: 768px) {
  7. //css样式
  8. }

  对于Bootstrap的媒体查询针对常用的几个屏宽,设置了相应的Class规则,如下图

1.3示例

  在上面我提到Bootstrap每行平均分成12列,来对内容划分,使用相应的Class规则对添加内容进行设置。我们做一个在屏幕宽度是970px以上内容内容各占三分之一,到992px以下内容占宽度的百分之百。如下示例。

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="UTF-8">
  5. <title></title>
  6. <link rel="stylesheet" type="text/css" href="css/bootstrap.css"/>
  7. <style type="text/css">
  8. </style>
  9. </head>
  10. <body>
  11. <div id="" class="container-fluid">
  12. <div class="row">
  13. <div class="col-md-4" style="background-color: red; height: 100px;">第一个</div>
  14. <div class="col-md-4" style="background-color: green; height: 100px;">第二个</div>
  15. <div class="col-md-4" style="background-color: blue; height: 100px;">第三个</div>
  16. </div>
  17. </div>
  18.  
  19. <script src="js/jquery-3.1.1.js" type="text/javascript" charset="utf-8"></script>
  20. <script src="js/bootstrap.js" type="text/javascript" charset="utf-8"></script>
  21. </body>
  22. </html>

970px变化

  如上图所看,在我们将浏览器的宽度缩小的时候,在缩到浏览器宽度到992px以下时,我们所做的div会自动将宽度扩大到100%,并依次向下排列开来。而你不用进行任何对Css的设置,只需要将所有内容包在class名为"row"的div中,并对其内容设置相应的class名字。

  如果你想添加更多的屏幕调整的变化,你可以继续为展示的内容添加相应的Class规则,如下示例

  1. <div class="row">
  2. <div class="col-md-4 col-sm-6" style="background-color: red; height: 100px;">第一个</div>
  3. <div class="col-md-4 col-sm-6" style="background-color: green; height: 100px;">第二个</div>
  4. <div class="col-md-4 col-sm-12" style="background-color: blue; height: 100px;">第三个</div>
  5. </div>

  如上图所看,我给每个div添加了class:col-md-4,是为了在992px宽度以上内容以平分3份显示,为第一和第二个div添加class:col-sm-6,是让这两个div在浏览器宽度在992px和768px时,内容各占一半,第三个div的class:col-sm-12,是让这个div在992px和768px时,内容宽度占100%。当小于768px时,如没有添加相应的class规则,默认内容占宽度的100%。

1.4其他属性

1-4-1:列偏移

  偏移是一个用于更专业的布局的有用功能。它们可用来给列腾出更多的空间。例如,.col-xs-* 类不支持偏移,但是它们可以简单地通过使用一个空的单元格来实现该效果。

为了在大屏幕显示器上使用偏移,请使用 .col-md-offset-* 类。这些类会把一个列的左外边距(margin)增加 * 列,其中 * 范围是从 1 到 11。如下示例。

  1. <div class="row">
  2. <div class="col-md-4 " style="background-color: red; height: 100px;">第一个</div>
  3. <div class="col-md-4 col-md-offset-4" style="background-color: green; height: 100px;">第二个</div>
  4. <div class="col-md-4 col-md-offset-2" style="background-color: blue; height: 100px;">第三个</div>
  5. <div class="col-md-4 col-md-offset-2" style="background-color: orange; height: 100px;">第四个</div>
  6. </div>

  1. <div class="row">
  2. <div class="col-md-4 " style="background-color: red; height: 100px;">第一个</div>
  3. <div class="col-md-6 col-md-offset-4" style="background-color: green; height: 100px;">第二个</div>
  4. <div class="col-md-4 col-md-offset-2" style="background-color: blue; height: 100px;">第三个</div>
  5. <div class="col-md-4 col-md-offset-4" style="background-color: orange; height: 100px;">第四个</div>
  6. </div>

  如上所示:我为第二个div添加class:col-md-offset-4,它向右移了4列距离,为第三个和第四个添加class:col-md-offset-2,第三个和第四都向右移了2列距离。(利用列偏移可以使内容居中显示,或居右显示)

注意:如果使用列偏移每行的内容所占列数综合不要超过12,否则将会被挤下去。如上的第二个示例。

1-4-2:嵌套列

  为了在内容中嵌套默认的网格,请添加一个新的 .row,并在一个已有的 .col-md-* 列内添加一组 .col-md-* 列。被嵌套的行应包含一组列,这组列个数不能超过12(其实,没有要求你必须占满12列,就是在栅格中在加一个栅格)。如下示例。

  1.       <div class="row">
  2. <div class="col-md-8 " style="background-color: red; height: 200px;">第一个
  3. <div class="row">
  4. <div class="col-md-6" style="background-color: green; height: 100px;">第二个</div>
  5.      <div class="col-md-4" style="background-color: blue; height: 100px;">第三个</div>
  6. </div>
  7. </div>
  8. </div>

  如上所示我将大div的宽度占浏览器可用宽度的8列,其中里面两个div占外div中的6列和4列。

1-4-3:列排序

  Bootstrap 网格系统另一个完美的特性,就是您可以很容易地以一种顺序编写列,然后以另一种顺序显示列。可以很轻易地改变带有 .col-md-push-* 和 .col-md-pull-* 类的内置网格列的顺序,其中 * 范围是从 1 到 11。(类似于弹性布局中的设置单个项目序号的order属性)

  1. <div class="row">
  2. <div class="col-md-9 " style="background-color: red; height: 100px;">左div</div>
  3. <div class="col-md-3 " style="background-color: orange; height: 100px;">右div</div>
  4. </div>

  1. <div class="row">
  2. <div class="col-md-9 col-md-push-3" style="background-color: red; height: 100px;">左div</div>
  3. <div class="col-md-3 col-md-pull-9" style="background-color: orange; height: 100px;">右div</div>
  4. </div>

  如上所示,在我没有添加push和pull的class规则,div的排序和显示没有变化,当我添加了push和pull的class规则,将这两个div的排序互换,从而不用改变div其他设置。可以由于对重要内容始终突出显示的效果。

谢谢大家阅读,希望对大家使用Bootstrap的栅格系统有帮助。顺便点赞,打赏,丢硬币,丢香蕉给我哦。

Bootstrap框架的了解和使用之栅格系统的更多相关文章

  1. bootstrap快速入门笔记(二)-栅格系统,响应式类

    一,栅格系统大致有以下: 1,行row必须包含在 .container (固定宽度)或 .container-fluid (100% 宽度)中,一行有12列 2.“列(column)”在水平方向创建一 ...

  2. bootstrap第一天,响应式布局,栅格系统运用

    <!DOCTYPE html><html lang="zh-CN"> <head> <meta charset="utf-8&q ...

  3. 最常用前端框架BootStrap——栅格系统

      前  言   Bootstrap 提供了一套响应式.移动设备优先的流式栅格系统,随着屏幕或视口(viewport)尺寸的增加,系统会自动分为最多12列.它包含了易于使用的预定义类,还有强大的mix ...

  4. bootstrap框架应用

    ---------------------------------------------------------------bootstrap---------------------------- ...

  5. Bootstrap的核心——栅格系统的使用

        前  言 絮叨絮叨 Bootstrap 是基于 HTML.CSS.JAVASCRIPT 的,它简洁灵活,使得 Web 开发更加快捷. 而栅格系统是Bootstrap中的核心,正是因为栅格系统的 ...

  6. 初学者--bootstrap(四)栅格系统----在路上(8)

    ---------------------------------------栅格系统:是bootstrap提供的响应式布局方式------------------------------------ ...

  7. bootstrap学习笔记<八>(bootstrap核心布局风格——栅格系统)

    栅格系统(bootstrap的核心之一,也是bootstrap的主要布局风格) 栅格系统是对原有div布局的升级版.打破了传统div模式只能纵向垂直排列的弊端,大大提高了页面布局的速度和效果,也很好的 ...

  8. bootstrap栅格系统的实现

    bootstrap提供了一个非常实用的栅格系统,可以实现响应式的网格布局,原理其实很简单,利用了float.百分比的宽度和@media的配合实现响应式,bootstrap默认把一行分为了12列,提供了 ...

  9. bootstrap_栅格系统_响应式工具_源码分析

    -----------------------------------------------------------------------------margin 为负 ​使盒子重叠 ​等高 等高 ...

随机推荐

  1. 初入angular4——实际项目搭建总结

    前言 接到一个pc端后台项目,还会加入两个安卓同事一起学习和做这个项目,需要带一下他们. 既ng1之后,我就没怎么有过其它后台框架的实际项目经验了,期间用的移动端框架也并非vue.angular系列. ...

  2. .NET Core+Selenium+Github+Travis CI => SiteHistory

    前言 总是三分钟热度的我折腾了一个可以每天自动截取指定网站页面并保存到Github的项目SiteHistory,感觉挺好(每次都这样). 想知道YouTube今天的首页长啥样么?点此查看 想知道You ...

  3. open文件操作之mode模式剖析

    Python可以使用open函数来实现文件的打开,关闭,读写操作: Python3中的open函数定义为: open(file, mode='r', buffering=None, encoding= ...

  4. python+selenium自动化软件测试(第13章):selenium面试题

    前言最近看到群里有小伙伴贴出一组面试题,最近又是跳槽黄金季节,小编忍不住抽出一点时间总结了下 一.selenium中如何判断元素是否存在?expected_conditions模块提供了16种判断方法 ...

  5. redi安装

    借鉴文章:https://segmentfault.com/a/1190000010709337 在linux中使用wget时,若报-bash: wget: command not found,则表明 ...

  6. MySQL的JOIN(一):用法

    JOIN的含义就如英文单词"join"一样,连接两张表,大致分为内连接,外连接,右连接,左连接,自然连接.这里描述先甩出一张用烂了的图,然后插入测试数据. CREATE TABLE ...

  7. javascript学习笔记-2:jQuery中$("xx")返回值探究

    最近在写一个jQuery插件的时候,需要用到一个条件: 一组img标签,每一个元素都需要被它前面的元素值src替换,如果是第一个(序列为0)则其值为最后一个元素值,如果是最后一个,那么其值为第一个元素 ...

  8. ios 初体验<UILabel控件>

    创建控件: UILabel *label = [[UILabel alloc]init]; //设置控件大小 label.frame = CGRectMake(50,100,300,40);//分别为 ...

  9. sql in 和 exist的区别

    详见:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcytp41 select * from A where id in(select ...

  10. less和scss

    一.less基础语法 1.声明变量:@变量名:变量值:      使用变量:@变量名; 2.混合(Mixins) 1)无参混合 声明: .class{} 调用:在选择器中,使用.class;直接调用 ...