![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=1739312079-Gn9ugr2i6wctvlUc2DStkTT5MFi7UQLC-0-feb3587e0994a8b2773d5839e31bab00)
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=1739312079-nmdAVANjoucMKYOrPwW6SHNeBjUCoVNo-0-d999e75ba8173f71198b3f7d60e6be1b)
HTML代码如下。
![](https://epubservercos.yuewen.com/98AA1D/17977545801605706/epubprivate/OEBPS/Images/45_03.jpg?sign=1739312079-QsDSG8tHKrmmwRHMRHT1XDnQpbvBKwJ2-0-1f52a11b6f23d084194d632d4ea6e819)
![](https://epubservercos.yuewen.com/98AA1D/17977545801605706/epubprivate/OEBPS/Images/46_01.jpg?sign=1739312079-LGzlvCog6DP1TBcArcoxwqVCdLZJGqP8-0-6e5aa67f7d11010651d719daeea9e35c)
运行【实例3-5】代码,列偏移效果如图3-10所示。
![](https://epubservercos.yuewen.com/98AA1D/17977545801605706/epubprivate/OEBPS/Images/46_02.jpg?sign=1739312079-wZacaaklFBkCej49RjeuC3hMjaRU4w6U-0-dc5315621753d473737256da2fd8b587)
图3-10 列偏移效果
【实例3-6】 在一个行中配合col和offset设计列宽和列偏移效果,其中在手机小屏与平板计算机上时设计为“列宽4,列偏移2”,在PC中屏与大屏上时设计为“列宽6,列偏移6”。
为了能让元素呈现清晰,添加如下样式代码。
![](https://epubservercos.yuewen.com/98AA1D/17977545801605706/epubprivate/OEBPS/Images/46_03.jpg?sign=1739312079-gHxxbwawq79z9seXWOEP0ESt7KrRCSWD-0-4aa353068a7c09c5ecc407bc1ea7d71d)
HTML代码如下。
![](https://epubservercos.yuewen.com/98AA1D/17977545801605706/epubprivate/OEBPS/Images/46_04.jpg?sign=1739312079-56oBtQgNUt3fpn4D2Rmwo5e88AciY539-0-ee588b1f57d23f7232345530be11eadc)
运行【实例3-6】代码,列偏移效果如图3-11所示。
![](https://epubservercos.yuewen.com/98AA1D/17977545801605706/epubprivate/OEBPS/Images/47_01.jpg?sign=1739312079-5OaHze3s3eXVnIFIU6NDS8N7hRxmjN28-0-0c1b82c085f7137cb6a5a6488092b0ae)
图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=1739312079-Wj4iYW7xZbRirpEWo12yr9NEFfpV2iaL-0-3439b6fd2b7c72af634bac4c741c4046)
“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=1739312079-7f8cGHNI1DF1oxA12HvdWLvszHzXWjKV-0-08309b5ec2782077fa34737b68f47316)
![](https://epubservercos.yuewen.com/98AA1D/17977545801605706/epubprivate/OEBPS/Images/48_01.jpg?sign=1739312079-lPgJoPeK4eIIce5d91Sch312JVn4LmBs-0-9413dba39a64afe7c4399b93d883090b)
HTML代码如下。
![](https://epubservercos.yuewen.com/98AA1D/17977545801605706/epubprivate/OEBPS/Images/48_02.jpg?sign=1739312079-7GuCfBEWgGDE1e72U1vpNWdUJ0QAkzYB-0-d28139bffad4330f929de89b43228a27)
运行【实例3-7】代码,列顺序调整效果如图3-12所示。
![](https://epubservercos.yuewen.com/98AA1D/17977545801605706/epubprivate/OEBPS/Images/48_03.jpg?sign=1739312079-gzQcuWMO9OzC9wwt7tfsTf8ELJotYNvU-0-e6d4ba61ee8db7f436139af6eccf2680)
图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=1739312079-fgWUz4iXDlaszOBNgNmtj7unQWb3ypbB-0-367802488d3e78e289bbce0d60a6efc2)
HTML代码如下。
![](https://epubservercos.yuewen.com/98AA1D/17977545801605706/epubprivate/OEBPS/Images/49_02.jpg?sign=1739312079-jJnOBjhCYOZJXFcJLdWQM4rkxa306tMO-0-b45b4e4b6a53292d6e594fd292aa843d)
运行【实例3-8】代码,列的嵌套排版效果如图3-13所示。
![](https://epubservercos.yuewen.com/98AA1D/17977545801605706/epubprivate/OEBPS/Images/49_03.jpg?sign=1739312079-ChswkazGyCX07QR9SfM1JyQ0svbxOhoB-0-a7c89fe525c1f15086a3b09b6515df2a)
图3-13 列的嵌套排版效果
a) PC中屏呈现效果 b) 平板计算机上呈现效果
【实例3-8】第2列“<div class="col-md-9">”中嵌套了一个“<div class="row">”元素,并在行内部嵌套了两个“<div class="col-xs-6">”。