Bootstrap源码解读网格系统(3)

源码解读Bootstrap网格系统

工作原理

数据行(.row)必须包含在容器(.container)中,以便为其赋予合适的对齐方式和内距(padding)。如:

<div class="container">

<div class="row"></div>

</div>

.container的实现源码:

.container {

padding-right: 15px;

padding-left: 15px;

margin-right: auto;

margin-left: auto;

}

@media (min-width: 768px) {

.container {

width: 750px;

}

}

@media (min-width: 992px) {

.container {

width: 970px;

}

}

@media (min-width: 1200px) {

.container {

width: 1170px;

}

}

在行中可以添加列,但列数之和不能超过平分的总列数,比如12。如:

<div class="container">

<div class="row">

<div class="col-md-4"></div>

<div class="col-md-8"></div>

</div>

</div>

列的实现源码如下:

.col-xs-1, .col-sm-1, .col-md-1, .col-lg-1, .col-xs-2, .col-sm-2, .col-md-2, .col-lg-2, .col-xs-3, .col-sm-3, .col-md-3, .col-lg-3, .col-xs-4, .col-sm-4, .col-md-4, .col-lg-4, .col-xs-5, .col-sm-5, .col-md-5, .col-lg-5, .col-xs-6, .col-sm-6, .col-md-6, .col-lg-6, .col-xs-7, .col-sm-7, .col-md-7, .col-lg-7, .col-xs-8, .col-sm-8, .col-md-8, .col-lg-8, .col-xs-9, .col-sm-9, .col-md-9, .col-lg-9, .col-xs-10, .col-sm-10, .col-md-10, .col-lg-10, .col-xs-11, .col-sm-11, .col-md-11, .col-lg-11, .col-xs-12, .col-sm-12, .col-md-12, .col-lg-12 {

position: relative;

min-height: 1px;

padding-right: 15px;

padding-left: 15px;

}

1、具体内容应当放置在列容器之内,而且只有列才可以作为行容器的直接子元素。

2、通过设置内距(padding)从而创建列与列之间的间距。然后通过为第一列和最后一列设置负值的外距(margin)来抵消内距(padding)的影响。

.row的实现源码:

.row {

margin-right: -15px;

margin-left: -15px;

}

列组合

列组合就是更改数字来合并,不过列总和数不能超12,有点类似于表格的colspan属性。实现列组合方式非常简单,只涉及两个CSS两个特性:浮动与宽度百分比。以xs为例,源码如下:

.col-xs-1, .col-xs-2, .col-xs-3, .col-xs-4, .col-xs-5, .col-xs-6, .col-xs-7, .col-xs-8, .col-xs-9, .col-xs-10, .col-xs-11, .col-xs-12 {

float: left;

}

.col-xs-12 {

width: 100%;

}

.col-xs-11 {

width: 91.66666667%;

}

.col-xs-10 {

width: 83.33333333%;

}

.col-xs-9 {

width: 75%;

}

.col-xs-8 {

width: 66.66666667%;

}

.col-xs-7 {

width: 58.33333333%;

}

.col-xs-6 {

width: 50%;

}

.col-xs-5 {

width: 41.66666667%;

}

.col-xs-4 {

width: 33.33333333%;

}

.col-xs-3 {

width: 25%;

}

.col-xs-2 {

width: 16.66666667%;

}

.col-xs-1 {

width: 8.33333333%;

}

列偏移

例如,在列元素上添加“col-md-offset-4”,表示该列向右移动4个列的宽度。

实现原理非常简单,就是利用十二分之一的margin-left,有多少个offset,就有多少个margin-left。以xs为例,实现源码如下:

.col-xs-offset-12 {

margin-left: 100%;

}

.col-xs-offset-11 {

margin-left: 91.66666667%;

}

.col-xs-offset-10 {

margin-left: 83.33333333%;

}

.col-xs-offset-9 {

margin-left: 75%;

}

.col-xs-offset-8 {

margin-left: 66.66666667%;

}

.col-xs-offset-7 {

margin-left: 58.33333333%;

}

.col-xs-offset-6 {

margin-left: 50%;

}

.col-xs-offset-5 {

margin-left: 41.66666667%;

}

.col-xs-offset-4 {

margin-left: 33.33333333%;

}

.col-xs-offset-3 {

margin-left: 25%;

}

.col-xs-offset-2 {

margin-left: 16.66666667%;

}

.col-xs-offset-1 {

margin-left: 8.33333333%;

}

.col-xs-offset-0 {

margin-left: 0;

}

列排序

可以使用类名“col-xs-pull-数字”,“col-xs-push-数字”来实现这个效果。

Bootstrap仅通过设置left和right来实现定位效果。以xs为例,实现源码如下:

.col-xs-pull-12 {

right: 100%;

}

.col-xs-pull-11 {

right: 91.66666667%;

}

.col-xs-pull-10 {

right: 83.33333333%;

}

.col-xs-pull-9 {

right: 75%;

}

.col-xs-pull-8 {

right: 66.66666667%;

}

.col-xs-pull-7 {

right: 58.33333333%;

}

.col-xs-pull-6 {

right: 50%;

}

.col-xs-pull-5 {

right: 41.66666667%;

}

.col-xs-pull-4 {

right: 33.33333333%;

}

.col-xs-pull-3 {

right: 25%;

}

.col-xs-pull-2 {

right: 16.66666667%;

}

.col-xs-pull-1 {

right: 8.33333333%;

}

.col-xs-pull-0 {

right: auto;

}

.col-xs-push-12 {

left: 100%;

}

.col-xs-push-11 {

left: 91.66666667%;

}

.col-xs-push-10 {

left: 83.33333333%;

}

.col-xs-push-9 {

left: 75%;

}

.col-xs-push-8 {

left: 66.66666667%;

}

.col-xs-push-7 {

left: 58.33333333%;

}

.col-xs-push-6 {

left: 50%;

}

.col-xs-push-5 {

left: 41.66666667%;

}

.col-xs-push-4 {

left: 33.33333333%;

}

.col-xs-push-3 {

left: 25%;

}

.col-xs-push-2 {

left: 16.66666667%;

}

.col-xs-push-1 {

left: 8.33333333%;

}

.col-xs-push-0 {

left: auto;

}

以上是 Bootstrap源码解读网格系统(3) 的全部内容, 来源链接: utcz.com/z/329729.html

回到顶部