Bootstrap—栅格系统

Bootstrap 提供了一套响应式、移动设备优先的流式栅格系统。通过定义容器的大小,平分12份,可类比table。一个数据(row)必须包含在.container中,行(row)在水平方向上创建一组列(column),就如同tr中创建td。具体的内容放在column中,而且只有列(column)可以作为行(row)的子元素。

在这里插入图片描述
12栅格化,每一个列(column)都有15px的左右边距;
.container样式源码:

.container {
  padding-right: 15px;/*由于row的margin设置-15px,需要这个15px进行修补*/
  padding-left: 15px;
  margin-right: auto;
  margin-left: auto;
}
@media (min-width: 768px) {
  .container {width: 750px;} /*小型屏幕时,container样式的宽度*/  
}
@media (min-width: 992px) {
  .container { width: 970px;} /*中型屏幕时,container样式的宽度,缩小min-width范围*/
}
@media (min-width: 1200px) {
 	.container { width: 1170px; }/*大型屏幕时,container样式的宽度,再次缩小min-width范围*/
}

而12份可以自由组合,可以用完12,也可以只用一部分,只需要用符号“col-md-数字”的规则就可以了。

 <div class="container">
        <div class="row">
            <div class="col-md-1">.col-md-1</div>
            <div class="col-md-1">.col-md-1</div>
            <div class="col-md-1">.col-md-1</div>
            <div class="col-md-1">.col-md-1</div>
            <div class="col-md-1">.col-md-1</div>
            <div class="col-md-1">.col-md-1</div>
            <div class="col-md-1">.col-md-1</div>
            <div class="col-md-1">.col-md-1</div>
            <div class="col-md-1">.col-md-1</div>
            <div class="col-md-1">.col-md-1</div>
            <div class="col-md-1">.col-md-1</div>
            <div class="col-md-1">.col-md-1</div>
        </div>
        <div class="row">
            <div class="col-md-8">.col-md-8</div>
            <div class="col-md-4">.col-md-4</div>
        </div>
        <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>
        <div class="row">
            <div class="col-md-6">.col-md-6</div>
            <div class="col-md-6">.col-md-6</div>
        </div>
    </div>

效果图:
在这里插入图片描述
列组合的实现方式只需要涉及左浮动和宽度的百分比即可.
列组合的源码:

.col-md-1,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-10,.col-md-11,.col-md-12{
	float:left;/*确保12个列都是左浮动*/
}
/*定义每一个组合的宽度百分比*/
.col-md-12{width:100%;}
.col-md-11{width:91.666666666666666%;}
.col-md-10{width:83.333333333333334%;}
.col-md-9{width:75%;}
.col-md-8{width:66.666666666666666%;}
.col-md-7{width:58.333333333333336%;}
.col-md-6{width:50%;}
.col-md-5{width:41.666666666666667%;}
.col-md-4{width:33.333333333333333%;}
.col-md-3{width:25%;}
.col-md-2{width:16.666666666666664%;}
.col-md-1{width:8.333333333333332%;}

列偏移:
有时不能让两个相邻的列挨在一起,需要利用栅格系统的列偏移(offset)功能来实现,就可以不用定义margin值。
使用 .col-md-offset- 的形式的样式将列偏移到右侧。

  <div class="container">
        <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>
    </div>

效果:在这里插入图片描述
通过查看源码,我们可以发现其实列偏移就是利用了margin-left,有多少的offset,就有多少的margin-left

.col-md-offset-12{margin-left:100%;}
.col-md-offset-11{margin-left:91.666666666666666%;}
.col-md-offset-10{margin-left:83.333333333333334%;}
.col-md-offset-9{margin-left:75%;}
.col-md-offset-8{margin-left:66.666666666666666%;}
.col-md-offset-7{margin-left:58.333333333333336%;}
.col-md-offset-6{margin-left:50%;}
.col-md-offset-5{margin-left:41.666666666666667%;}
.col-md-offset-4{margin-left:33.333333333333333%;}
.col-md-offset-3{margin-left:25%;}
.col-md-offset-2{margin-left:16.666666666666664%;}
.col-md-offset-1{margin-left:8.333333333333332%;}
.col-md-offset-0{margin-left:0;}

列嵌套:就是在一个列里面再声明一个或多个行(row)

<div class="row">
    <div class="col-md-9">
        Level 1: .col-md-9
        <div class="row">
            <div class="col-md-6">Level 2: .col-md-6</div>
            <div class="col-md-6">Level 2: .col-md-6 </div>
        </div>
  </div>
  <div class="col-md-3"></div>
  </div>
</div>

效果图:
在这里插入图片描述
可以看到,在一个列(col-md-9)里面,嵌套了一个新行(row),然后在新行里,又放置了两个等宽列的col-md-6,这时两个col-md-6加起来是12,但是总宽度和外面的col-md-9列的宽度一样。所以,在任何一个嵌套列里,不管宽度是多少,都可以再进行12等分,并可以进一步组合。
列排序
改变列的方向,也就是改变左右浮动,并设置浮动的距离。通过.col-md-push-*和.col-md-pull-*来实现这一目的。

// 源码1125行
.col-md-pull-12 {  right: 100%;}
.col-md-pull-11 {  right: 91.66666666666666%;}
.col-md-pull-10 {  right: 83.33333333333334%;}
.col-md-pull-9 {  right: 75%;}
.col-md-pull-8 {  right: 66.66666666666666%;}
.col-md-pull-7 {  right: 58.333333333333336%;}
.col-md-pull-6 {  right: 50%;}
.col-md-pull-5 {  right: 41.66666666666667%;}
.col-md-pull-4 {  right: 33.33333333333333%;}
.col-md-pull-3 {  right: 25%;}
.col-md-pull-2 {  right: 16.666666666666664%;}
.col-md-pull-1 {  right: 8.333333333333332%;}
.col-md-pull-0 {  right: 0;}
.col-md-push-12 {  left: 100%;}
// 其他同理,上pull的设置类似,唯一不同的就是right和left的区别
.col-md-push-0 {  left: 0;}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值