Bootstrap栅格系统初识

       其实在栅格系统之前,我们已经采用过流式布局,也可以实现响应式的布局设计。我们在编写普通的页面时,经常会使用百分比的方式进行布局,实现简单的响应式布局,然后为各个标签写我们想要的样式。在Bootstrap中,是采用栅格系统来进行响应式的布局。接下来我们具体看一下这个栅格系统的一些知识点以及简单应用。

一、栅格系统的简单介绍

       栅格系统用于通过一系列的行(row)与列(column)的组合来创建页面布局,你的内容就可以放入这些创建好的布局中。下面就介绍一下 Bootstrap 栅格系统的工作原理:

1)“行(row)”必须包含在 .container (固定宽度)或 .container-fluid (100% 宽度)中,以便为其赋予合适的排列(aligment)和内补(padding)。

2)通过“行(row)”在水平方向创建一组“列(column)”。

3)你的内容应当放置于“列(column)”内,并且,只有“列(column)”可以作为行(row)”的直接子元素。

4)通过为“列(column)”设置 padding 属性,从而创建列与列之间的间隔(gutter)。通过为 .row 元素设置负值 margin 从而抵消掉为 .container 元素设置的 padding,也就间接为“行(row)”所包含的“列(column)”抵消掉了padding

5)栅格系统中的列是通过指定1到12的值来表示其跨越的范围。例如,三个等宽的列可以使用三个 .col-xs-4 来创建。

6)如果一“行(row)”中包含了的“列(column)”大于 12,多余的“列(column)”所在的元素将被作为一个整体另起一行排列。

7)栅格类适用于与屏幕宽度大于或等于分界点大小的设备 , 并且针对小屏幕设备覆盖栅格类。 因此,在元素上应用任何 .col-md-*栅格类适用于与屏幕宽度大于或等于分界点大小的设备 , 并且针对小屏幕设备覆盖栅格类。 因此,在元素上应用任何 .col-lg-*不存在, 也影响大屏幕设备。

二、栅格系统的一些具体样式介绍

1、.container (固定宽度)或 .container-fluid (100% 宽度)

      如果是container,那么自动带有padding属性,而且会自动检测当前的宽度进行调整,即媒体查询:

.container {
    padding-right: 15px;
    padding-left: 15px;
    margin-right: auto;
    margin-left: auto;
}

@media (min-width: 1200px)
.container {
    width: 1170px;
}
@media (min-width: 992px)
.container {
    width: 970px;
}
@media (min-width: 768px)
.container {
    width: 750px;
}

       效果为:


       如果是container-fluid也是带有padding属性,那么宽度就是100%,也就是没有根据当前的宽度进行设置显示的宽度,而是100%宽度显示。

.container-fluid {
    padding-right: 15px;
    padding-left: 15px;
    margin-right: auto;
    margin-left: auto;
}

     效果为:

2、栅格参数

      我们可以通过下表详细查看 Bootstrap 的栅格系统是如何在多种屏幕设备上工作的。


简单来说,其实就是:

       lg: 超大屏幕,分辨率大于1200px;

       md: 普通屏幕,即中等屏幕,分辨率大于992px,小于1200px;

       sm: 小屏幕,即ipad大小,分辨率大于768px,小于992px;

       xs: 手机屏幕,分辨率小于768px.

       栅格系统其实就是把一行平均分为12格,我们可以根据自己的需要进行设置宽度。举一个例子说明:

<div class="container">
    <div class="row">
        <div class="col-lg-4">col-lg-4</div>
        <div class="col-lg-4">col-lg-4</div>
        <div class="col-lg-4">col-lg-4</div>
    </div>
</div>

     效果:

      我们将一行分成了3列, 每列的宽度占用4格。如果我们设计的格数超过12,那么就会自动跳到下一行,如下所示,4+4+6>12,最后一列就直接跳到下一行。

<div class="container">
    <div class="row">
        <div class="col-lg-4">col-lg-4</div>
        <div class="col-lg-4">col-lg-4</div>
        <div class="col-lg-6">col-lg-6</div>
    </div>
</div>

3、offset的用法

     如果我们想要一个效果,让某一列向右偏移,那么我们可以使用offset,比如:


    <div class="row">
        <div class="col-md-4">.col-md-4</div>
        <div class="col-md-4 col-md-offset-4">.col-md-4 .col-md-offset-4</div>
    </div>
    <div class="row">
        <div class="col-md-3 col-md-offset-3">.col-md-3 .col-md-offset-3</div>
        <div class="col-md-3 col-md-offset-3">.col-md-3 .col-md-offset-3</div>
    </div>
    <div class="row">
        <div class="col-md-6 col-md-offset-3">.col-md-6 .col-md-offset-3</div>
    </div>

     使用 .col-md-offset-* 类可以将列向右侧偏移。这些类实际是通过使用 * 选择器为当前元素增加了左侧的边距(margin)。例如,.col-md-offset-4 类将 .col-md-4 元素向右侧偏移了4个列(column)的宽度。

4、push和pull的用法

    

    <div class="row">
        <div class="col-lg-2 col-lg-push-10">col-lg-2</div>
        <div class="col-lg-10 col-lg-pull-2">col-lg-10</div>
    </div>
      用 .col-lg-push-*和.col-lg-pull-*可以将列右侧偏移和左侧偏移。例如.col-lg-push-10类将列clo-lg-2向右侧偏移10个列,.col-lg-pull-2将col-lg-10向左侧偏移2个列。

注意:offset和push的区别:

    两者都可以实现向右侧偏移,但是还是有区别。当一行里面含有多列时,使用.col-lg-offset*时,如果列数大于12,那么会自动跳到下一行,如果使用.col-lg-push-*就会向右偏移。


<div class="row">
        <div class="col-lg-12">col-lg-12</div>
    </div>
    
    <div class="row">
        <div class="col-lg-4">col-lg-4</div>
        <div class="col-lg-4 col-lg-offset-5">col-lg-4</div>
    </div>

    <div class="row">
        <div class="col-lg-4">col-lg-4</div>
        <div class="col-lg-4 col-lg-push-5">col-lg-4</div>
    </div>
第一行就是占用12个列,第二行使用了col-lg-offset-5,第三行使用了col-lg-push-5。


  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值