![Bootstrap响应式网站开发实例教程](https://wfqqreader-1252317822.image.myqcloud.com/cover/701/33643701/b_33643701.jpg)
3.2 栅格系统的常用方法
3.2.1 移动与调整列的位置
使用offset系列类可以将列偏移到右侧。这些类通过使用“.col-md-offset-*”选择器将所有列增加了列的左侧margin。例如,.col-md-offset-4就是将.col-md设备下的列向右移动了4个列的宽度。
offset通过margin-left实现偏移,因此会对右侧列产生影响。以.col-md设备为例,在Bootstrap 3.3的CSS源码中(bootstrap.css)可以看到如下样式集,这些样式集定义了.col-md设备下offset的样式代码。
![](https://epubservercos.yuewen.com/98AA1D/17977545801605706/epubprivate/OEBPS/Images/45_01.jpg?sign=1738926261-hVkwVWPrXTUdUGkbCjggdF1bNnhqvdr2-0-926e1425866e30110c16061a3dce534a)
offset也会占据布局空间,因此设计列偏移时,必须把offset偏移宽度与col宽度进行合并计算,确保每个行中的列宽和偏移宽度之和等于或小于12格。
【实例3-5】 在两个行中配合col和offset设计列宽和列偏移效果,其中第1行设计为第1列宽度为3,第2列宽度为7,偏移为2;第2行设计为第1列和第2列宽度均为3,同时向右偏移3格。
为了能让元素呈现清晰,这里的添加样式代码如下。
![](https://epubservercos.yuewen.com/98AA1D/17977545801605706/epubprivate/OEBPS/Images/45_02.jpg?sign=1738926261-CC9tTHtPs7AJJaPXOjasCiB6K9RpOynO-0-501fbc92e044b0239216b5634e9a0434)
HTML代码如下。
![](https://epubservercos.yuewen.com/98AA1D/17977545801605706/epubprivate/OEBPS/Images/45_03.jpg?sign=1738926261-PZFCHmNOztwHYmTFbjigRHIRnuMI6vwf-0-34d01886d93bef419cb5ad1a3c4229ec)
![](https://epubservercos.yuewen.com/98AA1D/17977545801605706/epubprivate/OEBPS/Images/46_01.jpg?sign=1738926261-LBioYoi0XM5ZkJQng5CnxJB9cYEx5bKb-0-c6e53b5611d7ff027a10de54df629f24)
运行【实例3-5】代码,列偏移效果如图3-10所示。
![](https://epubservercos.yuewen.com/98AA1D/17977545801605706/epubprivate/OEBPS/Images/46_02.jpg?sign=1738926261-pSiN0KsagF7fLxT3fMcR5oOmX8Ujy0fP-0-78abb18a85dc4f8aed9eea6f1352c992)
图3-10 列偏移效果
【实例3-6】 在一个行中配合col和offset设计列宽和列偏移效果,其中在手机小屏与平板计算机上时设计为“列宽4,列偏移2”,在PC中屏与大屏上时设计为“列宽6,列偏移6”。
为了能让元素呈现清晰,添加如下样式代码。
![](https://epubservercos.yuewen.com/98AA1D/17977545801605706/epubprivate/OEBPS/Images/46_03.jpg?sign=1738926261-kx4rYissBsxOivVFd7WImrKFMKohipNT-0-814a25695f29541d21a82bd022ec5029)
HTML代码如下。
![](https://epubservercos.yuewen.com/98AA1D/17977545801605706/epubprivate/OEBPS/Images/46_04.jpg?sign=1738926261-IOqJTnV2yqHNeHPr2vnDrEIlZuO8KPyO-0-d6cb9b36455587797f814d39ba44e08a)
运行【实例3-6】代码,列偏移效果如图3-11所示。
![](https://epubservercos.yuewen.com/98AA1D/17977545801605706/epubprivate/OEBPS/Images/47_01.jpg?sign=1738926261-K0edX9TRKeM0JX0DzfLQvAaXckadcFf9-0-ce66a29a97d8c93c7997b25813fe6227)
图3-11 列偏移呈现效果
a) 手机呈现效果 b) PC中屏呈现效果
3.2.2 调整列的排序
在Bootstrap中,“col-xs”“col-sm”“col-md”“col-lg”所有的列元素都使用了“position:relative;”,列排序通过相关类push和pull实现,利用这两个系列类可以调整列的显示位置,其中push向右偏移,通过left属性定义列左侧的偏移位置;pull向左偏移,通过right属性定义列右侧的偏移位置。
push和pull排序方法实现很简单,以col-md-pull-*为例,Bootstrap 3.3的CSS源码中的样式如下。
![](https://epubservercos.yuewen.com/98AA1D/17977545801605706/epubprivate/OEBPS/Images/47_02.jpg?sign=1738926261-rlMqKv9wM3PfHHraaJ1XAPblCJjT9EYJ-0-1ed85aff2c9f69570b186922c96618e6)
“col-md-push-*”与“col-md-pull-*”不同的是,“col-md-push-*”使用“left属性”控制右移的量。
【实例3-7】 在行中放置3个div,在PC中屏时分别置于左列(col-md-3)、中列(col-md-6)、右列(col-md-3);当视口缩小到平板计算机大小时,调整其位置:“左列,显示在右侧”“中列,显示在左侧”“右列,显示在中间”。
添加如下样式代码。
![](https://epubservercos.yuewen.com/98AA1D/17977545801605706/epubprivate/OEBPS/Images/47_03.jpg?sign=1738926261-vAOaYZyPs04zlhqlkSe1uQunEKU1R0xw-0-147c2966829379f647cb014e5a8179ed)
![](https://epubservercos.yuewen.com/98AA1D/17977545801605706/epubprivate/OEBPS/Images/48_01.jpg?sign=1738926261-4fGMmeu1vHoM2mADVYW2V6puLHDMJbnK-0-98793c2bc6b891e6791f5aab9cb3086a)
HTML代码如下。
![](https://epubservercos.yuewen.com/98AA1D/17977545801605706/epubprivate/OEBPS/Images/48_02.jpg?sign=1738926261-DNXjeVMGPWcZ5boSA5W4XLUJVPfeKipS-0-3288e6ce56ff326463e2eb49b8f19f5c)
运行【实例3-7】代码,列顺序调整效果如图3-12所示。
![](https://epubservercos.yuewen.com/98AA1D/17977545801605706/epubprivate/OEBPS/Images/48_03.jpg?sign=1738926261-W1d6N946ypNTSbfwmq0qKPuI3UxLzrPe-0-465141b9f640beed0335324946198fa2)
图3-12 列顺序调整效果
a) 计算机中屏呈现效果 b) 平板呈现效果
3.2.3 列嵌套排版
在网页设计中,因为排版的需要,有时要在一个div中再加入数个div。这样将一组新的网格内容加入原来已有的网格系统中就称为嵌套。Bootstrap支持列嵌套,栅格系统中的多层布局提供了简单的实现方式。用户只需在嵌套的列内部新添加一行,在添加的行内继续使用栅格系统即可。
注意,内部所嵌套的行的宽度为100%,就是当前外部列的宽度。
【实例3-8】 实现列的嵌套排版。
添加如下样式代码。
![](https://epubservercos.yuewen.com/98AA1D/17977545801605706/epubprivate/OEBPS/Images/49_01.jpg?sign=1738926261-NSbRGYlukpAJXUhJ85X7emiLLpj2kv3k-0-a6fcbd7ad95782364706f0477dc15473)
HTML代码如下。
![](https://epubservercos.yuewen.com/98AA1D/17977545801605706/epubprivate/OEBPS/Images/49_02.jpg?sign=1738926261-5RAvHv1xojp9JXCzsFv8tuQ3zxnyuJRQ-0-28f0786f77be251e938c68297857bdf5)
运行【实例3-8】代码,列的嵌套排版效果如图3-13所示。
![](https://epubservercos.yuewen.com/98AA1D/17977545801605706/epubprivate/OEBPS/Images/49_03.jpg?sign=1738926261-lsaMHx5nYtHXAy4OJHCb0h2ACEqOOwWp-0-dff67c1f6849b268ef5e9547e8774d89)
图3-13 列的嵌套排版效果
a) PC中屏呈现效果 b) 平板计算机上呈现效果
【实例3-8】第2列“<div class="col-md-9">”中嵌套了一个“<div class="row">”元素,并在行内部嵌套了两个“<div class="col-xs-6">”。