深入理解bootstrap的栅格系统
今天这里主要是学习bootstrap 中的栅格系统,其实bootstrap主要是应用与响应式的,说到响应式大家都会想到媒体查询@media:没错这里的关键点那就是媒体查询@media(废话不多说了,直接进入正题);
媒体查询 阈值(注意:例子中阈值都为默认值)
首先我们要知道bootstrap为我们提供了一套完整的流体栅格系统,而且随这屏幕或者视扣尺寸的增加,系统会制动分成最多12列 记住最多12列,当然有人会问多出了怎么办?别急下面且看我给您慢慢道来:
首先了解一下bootstrap媒体查询的阈值来跟我念 yu值 第三声 ,不是阀(fa)值,哈哈哈~~~,
/* 小屏幕(平板,大于等于 768px) */@media (min-width: @screen-sm-min) { ... }
/* 中等屏幕(桌面显示器,大于等于 992px) */@media (min-width: @screen-md-min) { ... }
/* 大屏幕(大桌面显示器,大于等于 1200px) */@media (min-width: @screen-lg-min) { ... }
上面的这些值得范围我们都是可以修改的,当这个范围达不到我们的需求时我们自己可以通过css样式来直接覆盖的;
@media (max-width: @screen-xs-max) { ... }@media (min-width: @screen-sm-min) and (max-width: @screen-sm-max) { ... }@media (min-width: @screen-md-min) and (max-width: @screen-md-max) { ... }@media (min-width: @screen-lg-min) { ... }
下面是一些详细的参数
(这里就偷一下懒,刷了张图)
Mou icon
实际例子:
呈现的效果就是当视口大于等于992px时就会水平排列,这里大家稍微注意一下就是所有"列"必须放在 .row内,向下面这样:
<style>.col-md-1{
background-color: #f1f1f1;
border:1px solid #1a2b3c;
}.col-md-4{
background-color: #f1f1f1;
border:1px solid #1a2b3c;
}.col-md-6{
background-color: #f1f1f1;
border:1px solid #1a2b3c;
}.col-md-8{
background-color: #f1f1f1;
border:1px solid #1a2b3c;
}
</style><body>
<div>
<div>.col-md-1</div>
<div>.col-md-1</div>
<div>.col-md-1</div>
<div>.col-md-1</div>
<div>.col-md-1</div>
<div>.col-md-1</div>
<div>.col-md-1</div>
<div>.col-md-1</div>
<div>.col-md-1</div>
<div>.col-md-1</div>
<div>.col-md-1</div>
<div>.col-md-1</div>
</div>
<div>
<div>.col-md-8</div>
<div>.col-md-4</div>
</div>
<div>
<div>.col-md-4</div>
<div>.col-md-4</div>
<div>.col-md-4</div>
</div>
<div>
<div>.col-md-6</div>
<div>.col-md-6</div>
</div></body>
大于992px
Mou icon
小于992px
Mou icon
移动设备和桌面
现在我们要适应两中不同的场景,所以一种类名现在已经不饿能够满足要求所以我们要再加一个类名像这样这里为了好分辨就给每个.row加了一个margin-bottom:10px;;
具体代码如下:
<div class="row">
<div class="col-xs-12 col-md-8">.col-xs-12 .col-md-8</div>
<div class="col-xs-6 col-md-4">.col-xs-6 .col-md-4</div>
</div>
<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>
<div class="row">
<div class="col-xs-6">.col-xs-6</div>
<div class="col-xs-6">.col-xs-6</div>
</div>
具体效果:
大于992px
Mou icon
小于992px
Mou icon
手机、平板、桌面
现在我们又多一个场景,再次细分,同样的再添加一个类名(相当于再次多以个阈值);
代码如下:
<div class="row">
<div class="col-xs-12 col-sm-6 col-md-8">.col-xs-12 .col-sm-6 .col-md-8</div>
<div class="col-xs-6 col-md-4">.col-xs-6 .col-md-4</div>
</div>
效果入下:
大于992px
Mou icon
小于992px且大于768px
Mou icon
小于768px
Mou icon
多余列
前面咱们提到过栅格系统做多为我们提供12列,那么超出部分怎么办哪? bootstrap这里是如果超出那么会将多余的元素作为整体再另起一列:
例:
<!-- 对比列 --><div>
<div>.col-xs-9</div>
<div>.col-xs-3 因为9 + 3 = 12 , </div>
<div>.col-xs-8 </div></div><!--效果列--><div>
<div>.col-xs-9</div>
<div>.col-xs-4 因为9 + 4 = 13 > 12,所以多出来的会下来 </div>
<div>.col-xs-8 </div></div>
效果如下:
Mou icon
列偏移
其实列偏移就是改变当前元素的margin值:
例:
<div class="row">
<div class="col-md-4">.col-md-4</div>
<div class="col-md-4 col-md-offset-4">我发生了偏移.col-md-offset-4</div>
</div>
<div class="row">
<div class="col-md-3 col-md-offset-3">我发生了偏移 .col-md-offset-3</div>
<div class="col-md-3 col-md-offset-3">我发生了偏移 .col-md-offset-3</div>
</div>
<div class="row">
<div class="col-md-6 col-md-offset-3">我发生了偏移 .col-md-offset-3</div>
</div>
具体效果如下:
Mou icon
嵌套列
有时候我们在开发项目时会遇到将内容嵌套,而bootstrap这里也是给我们提供嵌套类:
<div class="row">
<div class="col-sm-9">
父级 : .col-sm-9
<div class="row">
<div class="col-xs-8 col-sm-6">
子集左 : .col-xs-8 .col-sm-6
</div>
<div class="col-xs-4 col-sm-6">
子集右 : .col-xs-4 .col-sm-6
</div>
</div>
</div>
</div>
具体效果如下:
大于768px;
Mou icon
小于768px;
原文链接:简书/mogugit