1. 什么是栅格布局?
栅格布局是传统布局的一种改进方式。它允许将页面划分为多个等宽的列,方便开发者们对页面进行快速排版和移动端适配。实现栅格布局有许多方法,其中BootStrap是最常用的工具库之一。
2. BootStrap栅格系统
2.1 引入BootStrap库
在使用 BootStrap 栅格布局之前,需要先在 HTML 引入 BootStrap 库,可以通过以下 HTML 代码实现:
<!-- 引入 CSS 样式 -->
<link rel='stylesheet' href='https://cdn.bootcss.com/bootstrap/4.3.1/css/bootstrap.min.css' />
<!-- 引入 JS 文件 -->
<script src='https://cdn.bootcss.com/jquery/3.4.1/jquery.min.js' />
<script src='https://cdn.bootcss.com/bootstrap/4.3.1/js/bootstrap.min.js' />
2.2 栅格布局的基本语法
通过 BootStrap 的栅格系统,可以将每一行分割为 12 个等宽的列(column),并通过为每个列添加 class 属性,设置该列在不同设备大小下的占比(即栅格的布局)。下面是 BootStrap 栅格布局的基本语法。
<div class="container">
<div class="row">
<div class="col-sm">...</div>
<div class="col-sm">...</div>
<div class="col-sm">...</div>
</div>
</div>
其中,container 用于创建一个固定(非满屏)宽度的容器,row 用于划分、控制元素在某一行显示的位置,col-sm 是具体的栅格布局,控制列元素在不同尺寸设备上的宽度。
上述代码将创建一行并在其中添加了三个等宽的列,每个列占据了该行宽度的 1/3。如果需要将某列的宽度设置更大或更小,只需要修改 col-sm 后的数字。
2.3 栅格布局的媒体查询
BootStrap 的栅格布局需要考虑到不同设备的屏幕尺寸。在 BootStrap 中,通过媒体查询来控制布局,具体代码实现如下:
<div class="container">
<div class="row">
<div class="col-sm-4 col-md-2">...</div>
<div class="col-sm-4 col-md-8">...</div>
<div class="col-sm-4 col-md-2">...</div>
</div>
</div>
根据上述代码,在移动设备上每列等分 1/3,而在中等屏幕(md)上,第一个和第三个列将变为两个单位宽度,而中间的列将变为八个单位宽度。
2.4 栅格布局的常用现成代码
除了根据具体需求自定义,BootStrap 还提供了一些现成的栅格样式代码,可以在实际开发中直接调用。
常用栅格样式代码如下所示:
col: column 的缩写,表示元素是一个栏目元素,该元素将等分整行。
col-1, col-2, ..., col-12,它表示当前元素宽度占总宽度的比例,翻译成百分比即 width: X%。
col-auto: 表示元素自主设置宽度。
col-lg-3, col-md-4, ..., 它表示当前元素在不同分辨率下的别名,常用的有:lg, md, sm 和 xs。
3. BootStrap栅格offset
(偏移)和push
/pull
(换位)
3.1 offset偏移
栅格系统中,可以通过向元素添加 .offset-*
的 class,实现“向右平移”元素或“空出”一个列,从而创造出更为多样的列布局,创造更好的视觉效果。
下面是一个偏移了一个单位的实例:
<div class="container">
<div class="row">
<div class="col-md-3 offset-md-3">Three</div>
<div class="col-md-3">Three</div>
</div>
</div>
代码中,设置了一个 4 栅格单位宽度的箱子,偏移了两个单位。因此,视觉效果上看到的是两个 2 栅格单位宽度的箱子间隔了一个栅格单位。
3.2 push和pull换位
在栅格系统中,BootStrap 允许通过 .push-*
和 .pull-*
的 class 完成栏目之间的位置调换。这种方法适用于想要调整一行中元素的顺序而又不想改变元素代码的排列方式的情况。
下面是一个使用 push 和 pull 的例子:
<div class="container">
<div class="row">
<div class="col-md-6">Three</div>
<div class="col-md-6 col-md-push-6">Three</div>
</div>
</div>
这份代码实现了两个 6 栅格单位宽度的箱子,在大屏幕上呈现一行,但比较特殊的是,它们顺序和标准排列顺序相反。
4. BootStrap栅格系统的响应式设计
为了应对用户使用不同设备屏幕,BootStrap 栅格系统采用了响应式设计,可以适应不同的分辨率,在不同的屏幕下自动变化布局。
实际使用中,可以通过控制下面四个关键词之一中的参数,使响应式设计生效:xs (extra small), sm (small), md (medium) 或 lg (large)。
xs: 设备分辨率小于 768 px 时,使用 xs 样式。
sm: 设备分辨率更大一些,使用 sm 样式。设备分辨率大于等于 768 px 时使用。
md: 设备分辨率大于等于 992 px 时使用。
lg: 设备分辨率大于等于 1200 px 时使用。
如下所示是一个栅格系统随着设备分辨率变化的实例:
<div class="row">
<div class="col-sm-6 col-md-2">A</div>
<div class="col-xs-12 col-sm-6 col-md-8">B</div>
<div class="col-sm-6 col-md-2">C</div>
</div>
其中,当设备宽度小于等于 768px 时, A、B、C 三列为一行;当设备宽度大于 768px 并小于 992px 时, A 和 C 分别为一列,B 独自一列;当设备宽度大于等于 992px 时,A、B、C 三列为一行。
5. BootStrap栅格样式代码大全
下面是一些常用的 BootStrap 栅格代码。
<!-- 栅格布局 -->
<div class="container">
<div class="row">
<div class="col-*-*">...</div>
</div>
</div>
<!-- 偏移 -->
<div class="container">
<div class="row">
<div class="col-*-* offset-*-*">...</div>
</div>
</div>
<!-- 换位 -->
<div class="container">
<div class="row">
<div class="col-*-*-push-* col-*-*-pull-*">...</div>
</div>
</div>
<!-- 设备分辨率 -->
<div class="row">
<div class="col-sm-*">...</div>
<div class="col-md-*">...</div>
<div class="col-lg-*">...</div>
</div>
6. 总结
本文介绍了 BootStrap 栅格布局的基本语法、媒体查询、偏移和换位、响应式设计以及常用样式代码,BootStrap 栅格布局是一个非常实现快速排版和移动端适配的实用工具。
相比传统的布局方案,BootStrap 栅格布局更加便于控制,使得页面设计在各种设备下更加美观和易于实现。建议各位开发者们在不同需求情况下尝试使用。