![94f92e57ca8f3a2acfff111a12c6feb1.png](https://i-blog.csdnimg.cn/blog_migrate/035dc7ea97a779682ef848bc248cde92.jpeg)
目标
目标一、理解什么是栅格布局
目标二、掌握栅格布局具体应用
目标三、掌握BootStrap通用CSS样式(排版、代码、代码、表单、按钮、图片、辅助类、响应式工具)
内容
一、BootStrap全局CSS之 - 栅格系统实例
1.1 栅格系统实例
实战前的理论准备
通过下面的截图可以比较清楚的来查看Bootstrap的栅格系统是如何在多种不同的移动设备上面进行工作的。
![b7af55d51b327c34ff879838e24b1a99.png](https://i-blog.csdnimg.cn/blog_migrate/178211b3ce25f9596c390a111881192a.jpeg)
从上面的截图可以看出来,Bootstrap针对不同尺寸的屏幕(包括手机、平板、PC等等)设置了不同的样式类,这样让开发人员在开发时可以有更多的选择。根据我的理解:如果在一个元素上使用多个不同的上面的样式类,那么元素会根据在不同尺寸选择最合适(匹配最理想的)的样式类。简单的举例进行说明:比如在一个元素上我们使用了两个样式类:.col-md-和.col-lg。可以对照上面的截图来看
第一种情况:尺寸 >= 1200px;那么会选择.col-lg。
第二种情况:尺寸 >= 992px 并且尺寸<1200px;那么会选择.col-md。
第三种情况如果尺寸<992px;那么这两个样式类都将不会作用于元素上。
学习BootStrap栅格不像我们想像的那么难,下面我们就通过一些实例快速上手:
实例1 从堆叠到水平排列
使用单一的一组 .col-md-* 栅格类,就可以创建一个基本的栅格系统,在手机和平板设备上一开始是堆叠在一起的(超小屏幕到小屏幕这一范围),在桌面(中等)屏幕设备上变为水平排列。所有"列(column)必须放在 " .row 内。
代码如下:
效果如下:
![f021dbae4d5a14edb20fc3ffe349652e.png](https://i-blog.csdnimg.cn/blog_migrate/aed4c598f10fdf2ba77df3d3f541dae6.jpeg)
实例2 流式布局容器
将最外面的布局元素 .container 修改为 .container-fluid,就可以将固定宽度的栅格布局转换为 100% 宽度的布局。
代码如下:
...
实例3 移动设备和桌面屏幕
是否不希望在小屏幕设备上所有列都堆叠在一起?那就使用针对超小屏幕和中等屏幕设备所定义的类吧,即 .col-xs-* 和 .col-md-*。请看下面的实例,研究一下这些是如何工作的
代码如下:
效果如下:
![1795a2249bc8d8244c1b12b52e1c9965.png](https://i-blog.csdnimg.cn/blog_migrate/3f48e8b092adc21bd3d07190b257ea0c.jpeg)
实例4 多余的列(column)将另起一行排列
如果在一个 .row 内包含的列(column)大于12个,包含多余列(column)的元素将作为一个整体单元被另起一行排列。
代码如下:
Since 9 + 4 = 13 > 12, this 4-column-wide div gets wrapped onto a new line as one contiguous unit.
Subsequent columns continue along the new line.
效果如下:
![834b98e0815dbf8ed500fb83b9e5a45d.png](https://i-blog.csdnimg.cn/blog_migrate/6c440454ef2e51dd2e15a7660c50eb6a.jpeg)
实例5 列偏移
使用 .col-md-offset-* 类可以将列向右侧偏移。这些类实际是通过使用 * 选择器为当前元素增加了左侧的边距(margin)。例如,.col-md-offset-4 类将 .col-md-4 元素向右侧偏移了4个列(column)的宽度。
代码如下:
效果如下:
![3daecb0a6ee3c8695a16fbf75eb53bde.png](https://i-blog.csdnimg.cn/blog_migrate/6153439a45d0b36d140fa4199dfe853b.jpeg)
实例6 嵌套列
为了使用内置的栅格系统将内容再次嵌套,可以通过添加一个新的 .row 元素和一系列 .col-sm-* 元素到已经存在的 .col-sm-* 元素内。被嵌套的行(row)所包含的列(column)的个数不能超过12(其实,没有要求你必须占满12列)。
代码如下:
Level 1: .col-sm-9
Level 2: .col-xs-8 .col-sm-6
Level 2: .col-xs-4 .col-sm-6
效果如下:
![95b5e3550cc0d5a8599aadbc06d5dda7.png](https://i-blog.csdnimg.cn/blog_migrate/d9846abbd890e878827e33c04769f392.jpeg)
实例7 列排序
通过使用 .col-md-push-* 和 .col-md-pull-* 类就可以很容易的改变列(column)的顺序。
代码如下:
效果如下:
![c23bdf031a56e758524296861085fe13.png](https://i-blog.csdnimg.cn/blog_migrate/c4f0e0e40f2426a4e673e6543907a780.jpeg)
1.2、小结
![2a9a72a760acc22abaa4ceeef0efb479.png](https://i-blog.csdnimg.cn/blog_migrate/0de3f720c8f98cbfd608543e232f2a19.jpeg)
![f1250aa5566c6d35a609227942c01652.png](https://i-blog.csdnimg.cn/blog_migrate/93b46043024664b0f54d7654b1ae64e7.jpeg)