前    言

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 样式中设置相应的屏幕宽度既内容所占的大小。看下面例子:

//在屏幕宽度小于768PX时对应的Css样式
@media screen and (max-width: 768px) {
//css样式
}
//在屏幕宽度大于768PX时对应的Css样式
@media screen and (min-width: 768px) {
//css样式
}

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

1.3示例

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

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<link rel="stylesheet" type="text/css" href="css/bootstrap.css"/>
<style type="text/css">
</style>
</head>
<body>
<div id="" class="container-fluid">
<div class="row">
<div class="col-md-4" style="background-color: red; height: 100px;">第一个</div>
<div class="col-md-4" style="background-color: green; height: 100px;">第二个</div>
<div class="col-md-4" style="background-color: blue; height: 100px;">第三个</div>
</div>
</div> <script src="js/jquery-3.1.1.js" type="text/javascript" charset="utf-8"></script>
<script src="js/bootstrap.js" type="text/javascript" charset="utf-8"></script>
</body>
</html>

970px变化

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

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

            <div class="row">
<div class="col-md-4 col-sm-6" style="background-color: red; height: 100px;">第一个</div>
<div class="col-md-4 col-sm-6" style="background-color: green; height: 100px;">第二个</div>
<div class="col-md-4 col-sm-12" style="background-color: blue; height: 100px;">第三个</div>
</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。如下示例。

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

            <div class="row">
<div class="col-md-4 " style="background-color: red; height: 100px;">第一个</div>
<div class="col-md-6 col-md-offset-4" style="background-color: green; height: 100px;">第二个</div>
<div class="col-md-4 col-md-offset-2" style="background-color: blue; height: 100px;">第三个</div>
<div class="col-md-4 col-md-offset-4" style="background-color: orange; height: 100px;">第四个</div>
</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列,就是在栅格中在加一个栅格)。如下示例。

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

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

1-4-3:列排序

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

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

            <div class="row">
<div class="col-md-9 col-md-push-3" style="background-color: red; height: 100px;">左div</div>
<div class="col-md-3 col-md-pull-9" style="background-color: orange; height: 100px;">右div</div>
</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. #define和typedef在windows上的应用

    typedef的应用 typedef是在计算机编程语言中用来为复杂的声明定义简单的别名. 下面的代码定义了一些常见类型的别名 typedef int INT; typedef unsigned int ...

  2. 004-谈一谈lock和synchronized

    这两个关键字都是用来对线程进行同步操作的. 参考疯狂java讲义16.5节 线程的同步. (完全答反了...)

  3. Struts2简介以及初步搭建配置

    一.基本介绍 Struts2是一个基于MVC设计模式的Web应用框架,它本质上相当于一个servlet,在MVC设计模式中,Struts2作为控制器(Controller)来建立模型与视图的数据交互. ...

  4. poj3876 darts

    Darts Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 58   Accepted: 32   Special Judge ...

  5. 使用Java连接Redis

    下载redis的驱动包:Jedis.下载地址:https://mvnrepository.com/artifact/redis.clients/jedis/2.9.0 打开IDE,我使用的是Eclip ...

  6. ConcurrentHashmap中的size()方法简单解释

    本文所有的源码都是基于JDK1.8 ConcurrentHashmap中的size()方法源码: public int size() { long n = sumCount(); return ((n ...

  7. VS2013禁用Browser Link

    禁用原因 VS2013新增的Browser Link功能虽然“强大”,但我并不需要. 但默认是开启的,会在页面中自动添加如下的代码,查看AJAX时造成很大的干扰. <!-- Visual Stu ...

  8. Javascript用数组实现栈和队列

    栈是遵循后进先出(LIFO)规则的一种有序集合,比如桌上的一叠书,我们只能从上面放或取. 队列是遵循先进先出(FIFO)规则的一种有序集合,比如排队,先排到的先离开. 数组也是一种有序的集合,它与上面 ...

  9. 读redux有感: redux原来是这样操作的。

    2017.9.10日 教师节 : ~当一个事物你没有接触,但是生活中 常常用到他,你就不得不去了解他了. 注:新手可以看一下,毕竟博主也是个菜鸟,没法写高深的东西,不想看博主扯淡的直接看第三节啦~~ ...

  10. Android微信登录、分享、支付

    转载需要著名出处: http://blog.csdn.net/lowprofile_coding/article/details/78004224 之前写过微信登录分享支付第一版: http://bl ...