Bootstrap布局⽅式详解
Bootstrap 3 是移动设备优先的,在这个意义上,Bootstrap 代码从⼩屏幕设备(⽐如移动设备、平板电脑)开始,然后扩展到⼤屏幕设备(⽐如笔记本电脑、台式电脑)上的组件和⽹格。
⼀、移动设备优先策略1、内容:决定什么是最重要的。
2、布局优先设计更⼩的宽度。
基础的 CSS 是移动设备优先,媒体查询是针对于平板电脑、台式电脑。
3、渐进增强随着屏幕⼤⼩的增加⽽添加元素。
响应式⽹格系统随着屏幕或视⼝(viewport)尺⼨的增加,系统会⾃动分为最多12列。如下图:
⼆、Bootstrap ⽹格系统(Grid System)的⼯作原理
⽹格系统通过⼀系列包含内容的⾏和列来创建页⾯布局。下⾯列出了 Bootstrap ⽹格系统是如何⼯作的:
1、⾏必须放置在 .container class 内,以便获得适当的对齐(alignment)和内边距(padding)。
2、使⽤⾏来创建列的⽔平组。
3、内容应该放置在列内,且唯有列可以是⾏的直接⼦元素。
4、预定义的⽹格类,⽐如 .row 和 .col-xs-4,可⽤于快速创建⽹格布局。LESS 混合类可⽤于更多语义布局。
5、列通过内边距(padding)来创建列内容之间的间隙。该内边距是通过.rows 上的外边距(margin)取负,表⽰第
6、⼀列和最后⼀列的⾏偏移。
7、⽹格系统是通过指定您想要横跨的⼗⼆个可⽤的列来创建的。例如,要创建三个相等的列,则使⽤三个 .col-xs-4。
三、媒体查询
媒体查询是⾮常别致的"有条件的 CSS 规则"。它只适⽤于⼀些基于某些规定条件的 CSS。如果满⾜那些条件,则应⽤相应的样式。
Bootstrap 中的媒体查询允许您基于视⼝⼤⼩移动、显⽰并隐藏内容。下⾯的媒体查询在 LESS ⽂件中使⽤,⽤来创建Bootstrap ⽹格系统中的关键的分界点阈值。
/* 超⼩设备(⼿机,⼩于 768px) */
/* Bootstrap 中默认情况下没有媒体查询 */
/* ⼩型设备(平板电脑,768px 起) */
@media (min-width: @screen-sm-min) { ... }
/* 中型设备(台式电脑,992px 起) */
@media (min-width: @screen-md-min) { ... }
/* ⼤型设备(⼤台式电脑,1200px 起) */
@media (min-width: @screen-lg-min) { ... }
我们有时候也会在媒体查询代码中包含 max-width,从⽽将 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) { ... }
媒体查询有两个部分,先是⼀个设备规范,然后是⼀个⼤⼩规则。在上⾯的案例中,设置了下列的规则:
让我们来看下⾯这⾏代码:
@media (min-width: @screen-sm-min) and (max-width: @screen-sm-max) { ... }
对于所有带有 min-width: @screen-sm-min 的设备,如果屏幕的宽度⼩于 @screen-sm-max,则会进⾏⼀些处理。
四、⽹格选项
下表总结了Bootstrap ⽹格系统如何跨多个设备⼯作:
五、基本的⽹格结构
下⾯是 Bootstrap ⽹格的基本结构:
<div class="container">
<div class="row">
<div class="col-*-*"></div>
<div class="col-*-*"></div>
</div>
<div class="row">...</div>
</div>
<div class="container">....
下⾯是个具体代码实例:
<div class="container">
<h1>Hello, world!</h1>
<div class="row">
<!--超⼩设备⼿机(<768px) -->
<div class="col-xs-1" >1</div>
<div class="col-xs-1" >2</div>
<div class="col-xs-1" >3</div>
<div class="col-xs-1" >4</div>
<div class="col-xs-1" >5</div>
<div class="col-xs-1" >6</div>
<div class="col-xs-1" >7</div>
<div class="col-xs-1" >8</div>
<div class="col-xs-1" >9</div>
<div class="col-xs-1" >10</div>
<div class="col-xs-1" >11</div>
<div class="col-xs-1" >12</div>
</div>
<div class="row">
<!--⼩型设备平板电脑(≥768px) -->
<div class="col-sm-4" >1</div>
<div class="col-sm-4" >1</div>
<div class="col-sm-4" >1</div>
</div>
<div class="row">
<!--中型设备台式电脑(≥992px) -->
<div class="col-md-4" >1</div>
<div class="col-md-8" >1</div>
</div>
<div class="row">
<!--⼤型设备台式电脑(≥1200px) -->
<div class="col-lg-8" >1</div>
<div class="col-lg-4" >1</div>
</div>
</div>
六、偏移列
偏移是⼀个⽤于更专业的布局的有⽤功能。它们可⽤来给列腾出更多的空间。例如,.col-xs=* 类不⽀持偏移,但是它们可以简单地通过使⽤⼀个空的单元格来实现该效果。
为了在⼤屏幕显⽰器上使⽤偏移,请使⽤ .col-md-offset-* 类。这些类会把⼀个列的左外边距(margin)增加 * 列,其中 * 范围是从 1到 11。
在下⾯的实例中,我们有 <div class="col-md-6">..</div>,我们将使⽤ .col-md-offset-3 class 来居中这个 div。
<div class="container">
<div class="row">
<div class="col-xs-6 col-md-offset-3"
>
<p>
测试偏移列---此处往右偏移了3列
</p>
</div>
</div>
<div class="row">
<div class="col-xs-1" >1</div>
<div class="col-xs-1" >2</div>
<div class="col-xs-1" >3</div>
<div class="col-xs-1" >4</div>
<div class="col-xs-1" >5</div>
<div class="col-xs-1" >6</div>
<div class="col-xs-1" >7</div>
<div class="col-xs-1" >8</div>
<div class="col-xs-1" >9</div>
<div class="col-xs-1" >10</div>
<div class="col-xs-1" >11</div>
<div class="col-xs-1" >12</div>
</div>
</div>
显⽰效果:
七、嵌套列
为了在内容中嵌套默认的⽹格,请添加⼀个新的 .row,并在⼀个已有的 .col-md-* 列内添加⼀组 .col-md-* 列。被嵌套的⾏应包含⼀组列,这组列个数不能超过12(其实,没有要求你必须占满12列)。
在下⾯的实例中,布局有两个列,第⼆列被分为两⾏四个盒⼦。
css实现三列布局<div class="container">
<div class="row">
<div class="col-xs-4" >第⼀列</div>
<div class="col-xs-8" >第⼆列--⾥⾯嵌套了四个DIV
<div class="row">
<div class="col-xs-6" >我是内容⼀<br /><br /><br /></div>
<div class="col-xs-6" >我是内容⼆</div>
</div>
<div class="row">
<div class="col-xs-6" >我是内容三<br /><br /><br /></div>
<div class="col-xs-6" >我是内容四</div>
</div>
</div>
</div>
</div>
显⽰效果:
⼋、列排序
Bootstrap ⽹格系统另⼀个完美的特性,就是您可以很容易地以⼀种顺序编写列,然后以另⼀种顺序显⽰列。
您可以很轻易地改变带有 .col-md-push-* 和 .col-md-pull-* 类的内置⽹格列的顺序,其中 * 范围是从 1 到 11。
在下⾯的实例中,我们有两列布局,左列很窄,作为侧边栏。我们将使⽤ .col-md-push-* 和 .col-md-pull-* 类来互换这两列的顺序。
<div class="container">
<div class="row">
<div class="col-xs-4 col-md-push-8" >左边</div>
<div class="col-xs-8 col-md-pull-4" >右边</div>
</div>
</div>
显⽰效果:
如果⼤家还想深⼊学习,可以点击进⾏学习,再为⼤家附3个精彩的专题:
以上就是本⽂的全部内容,希望对⼤家的学习有所帮助,也希望⼤家多多⽀持。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论