Bootstrap 网格系统布局详解


Posted in Javascript onMarch 19, 2017

Bootstrap 提供了一套响应式、移动设备优先的流式网格系统(Grid System),随着屏幕或视口(viewport)尺寸的增加,系统会自动分为最多12列。

一、什么是网格(Grid)?

在平面设计中,网格是一种由一系列用于组织内容的相交的直线(垂直的、水平的)组成的结构(通常是二维的)。它广泛应用于打印设计中的设计布局和内容结构。在网页设计中,它是一种用于快速创建一致的布局和有效地使用 HTML 和 CSS 的方法。

一句话概括:网页设计中的网格用于组织内容,让网站易于浏览,并降低用户端的负载。

二、什么是Bootstrap网格系统(Grid System)?

Bootstrap 包含了一个 响应式的、移动设备优先的、不固定的网格系统 ,可以随着设备或视口大小的增加而适当地扩展到 12 列。它包含了用于简单的布局选项的预定义类,也包含了用于生成更多语义布局的功能强大的混合类。

Bootstrap 网格系统布局详解 

三、网格系统工作原理

网格系统通过一系列包含内容的行和列来创建页面布局。下面列出了 Bootstrap 网格系统是如何工作的:

•行必须放置在 .container class 内,以便获得适当的对齐(alignment)和内边距(padding)。

•使用行row来创建列的水平组。

•内容应该放置在列内, 且唯有列可以是行的直接子元素 。

•预定义的网格类,比如 .row 和 .col-xs-4 ,可用于快速创建网格布局。LESS 混合类可用于更多语义布局。

•列通过内边距(padding)来创建列内容之间的间隙。该内边距是通过 .rows 上的外边距(margin)取负,表示第一列和最后一列的行偏移。

•网格系统是通过指定您想要横跨的十二个可用的列来创建的。例如,要创建三个相等的列,则使用三个 .col-xs-4。

下面是 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>

注意:列 <div class="col-*-*"></div> 必须放在 <div class="row"> 行元素下,且行元素里边只能包含列子元素,不能跟其他的子标签元素,否则,布局样式会乱掉。

四、布局实战

代码:

<!DOCTYPE html>
<html>
<head>
 <meta charset="utf-8"> 
 <title>Bootstrap 实例 - 布局偏移列-@corwien</title>
 <link rel="stylesheet" href="https://cdn.static.runoob.com/libs/bootstrap/3.3.7/css/bootstrap.min.css"> 
 <script src="https://cdn.static.runoob.com/libs/jquery/2.1.1/jquery.min.js"></script>
 <script src="https://cdn.static.runoob.com/libs/bootstrap/3.3.7/js/bootstrap.min.js"></script>
</head>
<body style="margin:50px;background:gray;">
<div class="container" style="background:white;">
 <div class="row" >
 <div class="col-md-8 col-md-offset-1"> 
 <div style="background:pink; height:50px;">区块一 (col-md-8 col-md-offset-1)</div>
 </div>
 <div class="col-md-3">
  <div style="background:orange; height:50px;">区块二 (col-md-3)</div>
 </div>
 <div class="col-md-8 col-md-offset-1">
  <div style="background:green; height:50px;">区块三 (col-md-8 col-md-offset-1)</div>
 </div>
 <div class="col-md-4">
  <div style="background:red; height:50px;">区块四 (col-md-4)</div>
 </div>
 <div class="col-md-12">
 <div style="background:yellow; height:50px;">区块五(col-md-12)</div>
 </div>
 <div class="col-md-3">
 <div style="background:purple; height:50px;">区块六(col-md-3)</div>
 </div>
 <div class="col-md-6">
 <div style="background:beige; height:50px;">区块七(col-md-6)</div>
 </div>
 <div class="col-md-3">
 <div style="background:olive; height:50px;">区块八(col-md-3)</div>
 </div>
 </div>
</div>
</body>
</html>

Bootstrap 网格系统布局详解 

说明:灰色区域为body, 白色区域内为container容器。

注意:这里要特别注意区块一、区块二为在同一行,而区块三、和区块四在不同行,为什么呢?因为列元素为行内元素,如果一行没有够12列,则下边的区块元素会和它上边的区块列加起来小于或等于12,则会排在同一行,如果加起来大于12,则会排在下一列,如区块一和区块二两个列加起来等于12,则刚好能排在同一行,而区块三、四两个列加起来为13,超过一行最大显示列数12,自然就排在另一行了。

以上所述是小编给大家介绍的Bootstrap 网格系统布局,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!

Javascript 相关文章推荐
js数据验证集合、js email验证、js url验证、js长度验证、js数字验证等简单封装
May 15 Javascript
js判断游览器类型及版本号的代码
May 11 Javascript
JavaScript实现为指定对象添加多个事件处理程序的方法
Apr 17 Javascript
jquery结婚电子请柬特效源码分享
Aug 21 Javascript
jquery关于事件冒泡和事件委托的技巧及阻止与允许事件冒泡的三种实现方法
Nov 27 Javascript
js实现仿qq消息的弹出窗效果
Jan 06 Javascript
AngularJS Ajax详解及示例代码
Aug 17 Javascript
javascript实现数字配对游戏的实例讲解
Dec 14 Javascript
vue全局自定义指令-元素拖拽的实现代码
Apr 14 Javascript
vue项目前端错误收集之sentry教程详解
May 27 Javascript
vue ssr+koa2构建服务端渲染的示例代码
Mar 23 Javascript
微信小程序APP页面的之间的相互传递参数以及自定义组件
Apr 19 Javascript
用JavaScript和jQuery实现瀑布流
Mar 19 #Javascript
JSONP基础知识详解
Mar 19 #Javascript
jQuery中table数据的值拷贝和拆分
Mar 19 #Javascript
js实现旋转木马效果
Mar 17 #Javascript
jQuery实现验证码功能
Mar 17 #Javascript
基于vue.js轮播组件vue-awesome-swiper实现轮播图
Mar 17 #Javascript
node操作mysql数据库实例详解
Mar 17 #Javascript
You might like
php下通过curl抓取yahoo boss 搜索结果的实现代码
2011/06/10 PHP
PHP独立Session数据库存储操作类分享
2014/06/11 PHP
laravel框架关于搜索功能的实现
2018/03/15 PHP
PHP使用PDO 连接与连接管理操作实例分析
2020/04/21 PHP
关于PhpStorm设置点击编辑文件自动定位源文件的实现方式
2020/12/30 PHP
JavaScript中判断函数是new还是()调用的区别说明
2011/04/07 Javascript
jQuery最佳实践完整篇
2011/08/20 Javascript
JavaScript和HTML DOM的区别与联系及Javascript和DOM的关系
2015/11/15 Javascript
Node.js环境下JavaScript实现单链表与双链表结构
2016/06/12 Javascript
js实现可键盘控制的简单抽奖程序
2016/07/13 Javascript
jQuery 获取页面li数组并删除不在数组中的key
2016/08/02 Javascript
JS实现合并json对象的方法
2017/10/10 Javascript
js获取文件里面的所有文件名(实例)
2017/10/17 Javascript
3种vue路由传参的基本模式
2018/02/22 Javascript
node 命令方式启动修改端口的方法
2018/05/12 Javascript
微信小程序实现倒计时调用相机自动拍照功能
2018/06/10 Javascript
详解Vue.js在页面加载时执行某个方法
2018/11/20 Javascript
vue使用pdfjs显示PDF可复制的实现方法
2018/12/14 Javascript
使用原生js编写一个简单的框选功能方法
2019/05/13 Javascript
Vue3.0的优化总结
2020/10/16 Javascript
[01:31]DOTA2上海特级锦标赛 SECRET战队完整宣传片
2016/03/16 DOTA
Python调用C# Com dll组件实战教程
2017/10/12 Python
python利用Tesseract识别验证码的方法示例
2019/01/21 Python
Python使用统计函数绘制简单图形实例代码
2019/05/15 Python
python 根据字典的键值进行排序的方法
2019/07/24 Python
Transpose 数组行列转置的限制方式
2020/02/11 Python
python如何导出微信公众号文章方法详解
2020/08/31 Python
css3 旋转按钮 使用CSS3创建一个旋转可变色按钮
2012/12/31 HTML / CSS
美国畅销的跑步机品牌:ProForm
2017/02/06 全球购物
Overload和Override的区别
2012/09/02 面试题
中学老师的自我评价
2013/11/07 职场文书
干部现实表现材料
2014/02/13 职场文书
农民工预备党员思想汇报
2014/09/14 职场文书
学生自我评语
2015/01/04 职场文书
千与千寻观后感
2015/06/04 职场文书
五年级作文之劳动作文
2019/11/12 职场文书