Bootstrap 提供了一套响应式、移动设备优先的流式栅格系统,随着屏幕或视口(viewport)尺寸的增加,系统会自动分为最多12列。它包含了易于使用的预定义类,还有强大的mixin 用于生成更具语义的布局。
- “行(row)”必须包含在
.container
(固定宽度)或.container-fluid
(100% 宽度)中,以便为其赋予合适的排列(aligment)和内补(padding)。 - 通过“行(row)”在水平方向创建一组“列(column)”。
- 你的内容应当放置于“列(column)”内,并且,只有“列(column)”可以作为行(row)”的直接子元素。
- 类似
.row
和.col-xs-4
这种预定义的类,可以用来快速创建栅格布局。Bootstrap 源码中定义的 mixin 也可以用来创建语义化的布局。 - 通过为“列(column)”设置
padding
属性,从而创建列与列之间的间隔(gutter)。通过为.row
元素设置负值margin
从而抵消掉为.container
元素设置的padding
,也就间接为“行(row)”所包含的“列(column)”抵消掉了padding
。 - 负值的 margin就是下面的示例为什么是向外突出的原因。在栅格列中的内容排成一行。
- 栅格系统中的列是通过指定1到12的值来表示其跨越的范围。例如,三个等宽的列可以使用三个
.col-xs-4
来创建。 - 如果一“行(row)”中包含了的“列(column)”大于 12,多余的“列(column)”所在的元素将被作为一个整体另起一行排列。
- 栅格类适用于与屏幕宽度大于或等于分界点大小的设备 , 并且针对小屏幕设备覆盖栅格类。 因此,在元素上应用任何
.col-md-*
栅格类适用于与屏幕宽度大于或等于分界点大小的设备 , 并且针对小屏幕设备覆盖栅格类。 因此,在元素上应用任何.col-lg-*
不存在, 也影响大屏幕设备。
1 <!DOCTYPE html> 2 <html lang="zh-CN"> 3 4 <head> 5 <meta charset="utf-8"> 6 <meta http-equiv="X-UA-Compatible" content="IE=edge"> 7 <meta name="viewport" content="width=device-width, initial-scale=1"> 8 <!-- 上述3个meta标签*必须*放在最前面,任何其他内容都*必须*跟随其后! --> 9 <title>Bootstrap 网格系统</title> 10 <link href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css" rel="stylesheet"> 11 </head> 12 13 <body> 14 <div class="container"> 15 <h2>网格系统</h2> 16 <div class="row"> 17 <div class="col-lg-3 col-md-4 col-sm-6 col-xs-12 bg-primary">1</div> 18 <div class="col-lg-3 col-md-4 col-sm-6 col-xs-12 bg-success">2</div> 19 <div class="col-lg-3 col-md-4 col-sm-6 col-xs-12 bg-info">3</div> 20 <div class="col-lg-3 col-md-4 col-sm-6 col-xs-12 bg-warning">4</div> 21 </div> 22 <h2>响应式列重置</h2> 23 <div class="row"> 24 <div class="col-xs-6 col-sm-3">.col-xs-6 .col-sm-3Add the extra clearfix for only the required viewport 25 </div> 26 <div class="col-xs-6 col-sm-3">.col-xs-6 .col-sm-3</div> 27 <!-- 防止一行过高,别的列排在内容后便 --> 28 <div class="clearfix visible-xs-block"></div> 29 <div class="col-xs-6 col-sm-3">.col-xs-6 .col-sm-3</div> 30 <div class="col-xs-6 col-sm-3">.col-xs-6 .col-sm-3</div> 31 </div> 32 <h2>列偏移</h2> 33 <!-- 使用 .col-md-offset-* 类可以将列向右侧偏移。这些类实际是通过使用 * 选择器为当前元素增加了左侧的边距(margin) --> 34 <div class="row"> 35 <div class="col-md-4 bg-primary">.col-md-4</div> 36 <div class="col-md-4 col-md-offset-4 bg-success">.col-md-4 .col-md-offset-4</div> 37 </div> 38 <div class="row"> 39 <div class="col-md-3 col-md-offset-3 bg-primary">.col-md-3 .col-md-offset-3</div> 40 <div class="col-md-3 col-md-offset-3 bg-success">.col-md-3 .col-md-offset-3</div> 41 </div> 42 <div class="row"> 43 <div class="col-md-6 col-md-offset-3 bg-primary">.col-md-6 .col-md-offset-3</div> 44 </div> 45 <!-- 列排序 --> 46 <h2>列排序</h2> 47 <!-- 通过使用 .col-md-push-* 和 .col-md-pull-* 类就可以很容易的改变列(column)的顺序。 --> 48 <div class="row"> 49 <div class="col-md-9 col-md-push-3 bg-primary">.col-md-9 .col-md-push-3</div> 50 <div class="col-md-3 col-md-pull-9 bg-success">.col-md-3 .col-md-pull-9</div> 51 </div> 52 <h2>嵌套列</h2> 53 <!-- 为了使用内置的栅格系统将内容再次嵌套,可以通过添加一个新的 .row 元素和一系列 .col-sm-* 54 元素到已经存在的 .col-sm-* 元素内。被嵌套的行(row)所包含的列(column)的个数不能超过12 55 (其实,没有要求你必须占满12列)。 --> 56 <div class="row"> 57 <div class="col-sm-9"> 58 Level 1: .col-sm-9 59 <div class="row"> 60 <div class="col-xs-8 col-sm-6"> 61 Level 2: .col-xs-8 .col-sm-6 62 </div> 63 <div class="col-xs-4 col-sm-6"> 64 Level 2: .col-xs-4 .col-sm-6 65 </div> 66 </div> 67 </div> 68 </div> 69 </div> 70 71 72 </body> 73 <script src="https://cdn.jsdelivr.net/npm/jquery@1.12.4/dist/jquery.min.js"></script> 74 <script src="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/js/bootstrap.min.js"></script> 75 76 </html>