前    言

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. JavaScript 学习笔记 - LocalStorage

    前言 本文主要介绍本地存储的基本使用,以及它和 Cookie.SessionStorage 的区别. 简单回顾 Cookie 在 HTML5 之前,本地存储数据一般是通过 Cookie 来完成的.我们 ...

  2. SoapUI 之 JDBC请求

    之前有试过Jmeter的JDBC请求,挺方便的,今天下午闲来没事,看见soapUI里面也有一个JDBC请求,便也来试试. 首先添加一个JDBC请求,然后直接把Jmeter的一些链接参数复制过去,一直报 ...

  3. JavaScript操作DOM节点

    DOM (文档对象模型(Document Object Model)) 文档对象模型(Document Object Model,简称DOM),是W3C组织推荐的处理可扩展标志语言的标准编程接口.在网 ...

  4. .net core 2.0 登陆权限验证

    首先在Startup的ConfigureServices方法添加一段权限代码 services.AddAuthentication(x=> { x.DefaultAuthenticateSche ...

  5. h5drag事件

    在拖动目标上触发事件 (源元素):ondragstart - 用户开始拖动元素时触发ondrag - 元素正在拖动时触发ondragend - 用户完成元素拖动后触发释放目标时触发的事件:ondrag ...

  6. PS小实验-去除水印

    PS小实验-去除水印 水印是一些品牌商覆盖在图片或视频上的一个商标logo或小文本,比如大家最讨厌的百度logo,作者本人也是比较讨厌水印的,让好端端的一张图片变得美中不足. 个人觉得用photosh ...

  7. 【1414软工助教】团队作业5——测试与发布(Alpha版本) 得分榜

    题目 团队作业5--测试与发布(Alpha版本) 作业提交情况情况 所有团队按时提交. 往期成绩 个人作业1:四则运算控制台 结对项目1:GUI 个人作业2:案例分析 结对项目2:单元测试 团队作业1 ...

  8. 201521123019 《Java程序设计》第8周学习总结

    1. 本章学习总结 2. 书面作业 一.List中指定元素的删除(题目4-1) for (int i = list.size()-1; i >=0; i--) {//从最后一个元素开始删除 if ...

  9. 201521123078《Java程序设计》第1周学习总结

    1. 本周学习总结 简单的了解JVM,JRE,JDK,编写简单的Java程序 2. 书面作业 为什么java程序可以跨平台运行?执行java程序的步骤是什么?(请用自己的语言书写) 通过JVM虚拟机, ...

  10. 201521123067 《Java程序设计》第13周学习总结

    201521123067 <Java程序设计>第13周学习总结 1. 本周学习总结 以你喜欢的方式(思维导图.OneNote或其他)归纳总结多网络相关内容. 2. 书面作业 Q1. 网络基 ...