布局实例
Bootstrap3栅格系统的核心理念是移动设备优先,其实也就是小设备优先。使用这些栅格类,再结合栅格系统的规则,就可以构建出千变万化的页面布局。
先看一个简单实例,来加深对移动设备优先的理解。假设我们只使用单一的一组 .col-md-*
栅格类来创建一个栅格系统:
<div class="row">
<div class="col-md-4">.col-md-4</div>
<div class="col-md-4">.col-md-4</div>
<div class="col-md-4">.col-md-4</div>
</div>
上述代码中,我们仅仅为元素应用了一组 .col-md-*
栅格类,而没有应用任何 .col-xs-*
、.col-sm-*
、.col-lg-*
类。
根据小设备优先的规则,就很容易知道它在小屏幕和超小屏幕上将使用默认的堆叠布局,在大屏幕上将继续使用 .col-md-*
类的布局,即水平排列的三列等宽布局。
这也很容易验证,通过鼠标调整浏览器窗口的尺寸,一开始让窗口很窄(小于992px)。得到的运行结果如图 2‑1所示:
图2-1 小屏幕和超小屏幕堆叠排列
随着窗口慢慢增大,当达到 992px 时,它就会就变为水平排列。运行结果如图 2‑2所示:
图2-2 中等屏幕和大屏幕水平排列
如果你不希望在小屏幕设备上所有列都堆叠在一起,那就得添加针对超小屏幕的类.col-xs-*
。如:
<div class="row ">
<div class="col-xs-6 col-md-4">.col-xs-6 .col-md-4</div>
<div class="col-xs-6 col-md-4">.col-xs-6 .col-md-4</div>
<div class="col-xs-6 col-md-4">.col-xs-6 .col-md-4</div>
</div>
上述元素应用了 .col-xs-*
和 .col-md-*
栅格类,因此在小屏幕和超小屏幕上将使用.col-xs-*
类定义的 6-6-6 布局(由于列数之和大于 12,最后一个 6 列将另起一行排列),在中等屏幕和大屏幕上将使用 .col-md-*
类定义的 4-4-4 布局。
在小屏幕和超小屏幕上的运行结果如图 2‑3所示:
图2-3 小屏幕和超小屏幕布局
在中等屏幕和大屏幕的运行结果如图 2‑4所示:
图2-4 中等屏幕和大屏幕布局
如果你希望每种不同的屏幕都拥有不同的布局,你就可以同时使用 .col-xs-*
、.col-sm-*
、.col-md-*
、.col-lg-*
类。如:
<div class="row ">
<div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">…</div>
<div class="col-xs-6 col-sm-8 col-md-9 col-lg-10">…</div>
</div>
上述布局为 4 种类型的屏幕都分别定义了各自的栅格类,因此每种屏幕都将拥有自己的布局。最终的布局结果是,在超小屏幕上将使用.col-xs-*
类定义的 6-6 布局,在小屏幕上使用.col-sm-*
类定义的 4-8 布局,在中等屏幕上使用 .col-md-*
类定义的 3-9 布局,在大屏幕上使用 .col-lg-*
类定义的 2-10 布局。
关于作者
歪脖先生,十五年以上软件开发经验,酷爱Web开发,精通 HTML、CSS、JavaScript、jQuery、JSON、Python、Less、Bootstrap等,著有《HTML宝典》、《揭秘CSS》、《Less简明教程》、《JSON教程》、《Bootstrap2用户指南》、《Bootstrap3实用教程》,并全部在 GitHub 上开源。