Bootstrap 提供了一套响应式、移动设备优先的流式网格系统,随着屏幕或视口(viewport)尺寸的增加,系统会自动分为最多12列。
网页设计中的网格布局作用:组织内容,让网站易于浏览,并降低用户端的负载。
Grid System
Bootstrap 包含了一个响应式的、移动设备优先的、不固定的网格系统,可以随着设备或视口大小的增加而适当地扩展到 12 列。它包含了用于简单的布局选项的预定义类,也包含了用于生成更多语义布局的功能强大的混合类。
移动设备优先策略:
1.基础的 CSS 是移动设备优先,媒体查询是针对于平板电脑、台式电脑。
2.随着屏幕大小的增加而添加元素。
3.优先设计更小的宽度。
Grid System 工作原理
1.行必须放置在 .container class 内,以便获得适当的对齐(alignment)和内边距(padding)。
2.使用行来创建列的水平组。
3.内容应该放置在列内,且唯有列可以是行的直接子元素。
4.预定义的网格类,比如 .row 和 .col-xs-4,可用于快速创建网格布局。LESS 混合类可用于更多语义布局。
5.列通过内边距(padding)来创建列内容之间的间隙。该内边距是通过 .rows 上的外边距(margin)取负,表示第一列和最后一列的行偏移。
6.网格系统是通过指定您想要横跨的十二个可用的列来创建的。例如,要创建三个相等的列,则使用三个 .col-xs-4。
媒体查询
媒体查询是非常别致的"有条件的 CSS 规则"。它只适用于一些基于某些规定条件的 CSS。如果满足那些条件,则应用相应的样式。
/* 超小设备(手机,小于 768px) */ /* Bootstrap 中默认情况下没有媒体查询 */ /* 小型设备(平板电脑,768px 起) */ @media (min- @screen-sm-min) { ... } /* 中型设备(台式电脑,992px 起) */ @media (min- @screen-md-min) { ... } /* 大型设备(大台式电脑,1200px 起) */ @media (min- @screen-lg-min) { ... }
有时候也会在媒体查询代码中包含 max-width,从而将 CSS 的影响限制在更小范围的屏幕大小之内。
@media (max- @screen-xs-max) { ... } @media (min- @screen-sm-min) and (max- @screen-sm-max) { ... } @media (min- @screen-md-min) and (max- @screen-md-max) { ... } @media (min- @screen-lg-min) { ... }
网格选项
.col-xs- 超小设备手机(<768px)
.col-sm- 小型设备平板电脑(≥768px)
.col-md- 中型设备台式电脑(≥992px)
.col-lg- 大型设备台式电脑(≥1200px)
代码
01 页面居中显示的容器
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"><!--告诉IE浏览器用最新的引擎--> <meta name="viewport" content="width=device-width, initial-scale=1"><!--响应式布局--> <link href="bootstrap/css/bootstrap.min.css" rel="stylesheet" /><!--bootstrap样式--> <title></title> </head> <body> <div class="container"> <h1 class="page-header">主体</h1> <p>Use this document as a way to quickly start any new project. All you get is this text and a mostly barebones HTML document.</p> </div> <script src="Script/jquery-1.8.3.js"></script><!--Bootstrap 的所有 JavaScript 插件都依赖 jQuery,所以必须放在前边--> <script src="bootstrap/js/bootstrap.min.js"></script><!--Bootstrap 的所有 JavaScript 插件--> </body> </html>
class:page-header,container
.page-header { padding-bottom: 9px; margin: 40px 0 20px; border-bottom: 1px solid #eee; } .container { padding-right: 15px; padding-left: 15px; margin-right: auto; margin-left: auto; } @media (min- 768px) { .container { width: 750px; } } @media (min- 992px) { .container { width: 970px; } } @media (min- 1200px) { .container { width: 1170px; } }
02 网格类
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1"> <link href="bootstrap/css/bootstrap.min.css" rel="stylesheet" /> <title></title> </head> <body> <div class="container"> <div class="row"> <!-- col-lg-6 >=1200px col-md-8 >=992px col-sm-6 >=768px col-xs-6 <798px --> <div class="col-md-8 col-sm-6"> <h1 class="page-header">主体</h1> <p> Use this document as a way to quickly start any new project. All you get is this text and a mostly barebones HTML document. </p> </div> <div class="col-md-4 col-sm-6"> <h1 class="page-header">边栏</h1> <p> Use this document as a way to quickly start any new project. All you get is this text and a mostly barebones HTML document. </p> </div> </div> </div> <script src="Script/jquery-1.8.3.js"></script> <script src="bootstrap/js/bootstrap.min.js"></script> </body> </html>
03 混合使用网格类
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1"> <link href="bootstrap/css/bootstrap.min.css" rel="stylesheet" /> <title></title> </head> <body> <div class="container"> <div class="row"> <!-- col-lg-6 >=1200px col-md-8 >=992px col-sm-6 >=768px col-xs-6 <798px --> <div class="col-md-9 col-sm-8 col-xs-6 col-lg-10"> <h1 class="page-header">主体</h1> <p> Use this document as a way to quickly start any new project. All you get is this text and a mostly barebones HTML document. </p> </div> <div class="col-md-3 col-sm-4 col-xs-6 col-lg-2"> <h1 class="page-header">边栏</h1> <p> Use this document as a way to quickly start any new project. All you get is this text and a mostly barebones HTML document. </p> </div> </div> </div> <script src="Script/jquery-1.8.3.js"></script> <script src="bootstrap/js/bootstrap.min.js"></script> </body> </html>
04 push和pull
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1"> <link href="bootstrap/css/bootstrap.min.css" rel="stylesheet" /> <title></title> </head> <body> <div class="container"> <div class="row"> <div class="col-md-9 col-md-push-3"><!--col-md-push-3:中等尺寸往右推3个网格--> <h1 class="page-header">主体</h1> <p> Use this document as a way to quickly start any new project. All you get is this text and a mostly barebones HTML document. </p> </div> <div class="col-md-3 col-md-pull-9"><!--col-md-pull-9:中等尺寸往左拉9个网格--> <h1 class="page-header">边栏</h1> <p> Use this document as a way to quickly start any new project. All you get is this text and a mostly barebones HTML document. </p> </div> </div> </div> <script src="Script/jquery-1.8.3.js"></script> <script src="bootstrap/js/bootstrap.min.js"></script> </body> </html>
05 嵌套的布局
class:clearfix 清除浮动 or 每行网格都放在 class:row中的div中
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1"> <link href="bootstrap/css/bootstrap.min.css" rel="stylesheet" /> <title></title> </head> <body> <div class="container"> <div class="row"> <div class="col-md-8"> <h1 class="page-header">主体</h1> <p> Use this document as a way to quickly start any new project. All you get is this text and a mostly barebones HTML document. </p> <div class="row"> <div class="col-md-4"> <h1 class="page-header">区块1</h1> <p> Use this document as a way to quickly start any new project. All you get is this text and a mostly barebones HTML document. Use this document as a way to quickly start any new project. All you get is this text and a mostly barebones HTML document. Use this document as a way to quickly start any new project. All you get is this text and a mostly barebones HTML document. Use this document as a way to quickly start any new project. All you get is this text and a mostly barebones HTML document. </p> </div> <div class="col-md-4"> <h1 class="page-header">区块2</h1> <p> Use this document as a way to quickly start any new project. All you get is this text and a mostly barebones HTML document. </p> </div> <div class="col-md-4"> <h1 class="page-header">区块3</h1> <p> Use this document as a way to quickly start any new project. All you get is this text and a mostly barebones HTML document. </p> </div> <div class="clearfix"></div> <div class="col-md-6"> <h1 class="page-header">区块4</h1> <p> Use this document as a way to quickly start any new project. All you get is this text and a mostly barebones HTML document. </p> </div> <div class="col-md-6"> <h1 class="page-header">区块5</h1> <p> Use this document as a way to quickly start any new project. All you get is this text and a mostly barebones HTML document. </p> </div> </div> </div> <div class="col-md-4"> <h1 class="page-header">边栏</h1> <p> Use this document as a way to quickly start any new project. All you get is this text and a mostly barebones HTML document. </p> </div> </div> </div> <script src="Script/jquery-1.8.3.js"></script> <script src="bootstrap/js/bootstrap.min.js"></script> </body> </html>