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 相关文章推荐
QQ登录简单实现代码
Mar 09 Javascript
一个高效的JavaScript压缩工具下载集合
Mar 06 Javascript
javascript Discuz代码中的msn聊天小功能
May 25 Javascript
css值转换成数值请抛弃parseInt
Oct 24 Javascript
Jquery 获取checkbox的checked问题
Nov 16 Javascript
JS多物体 任意值 链式 缓冲运动
Aug 10 Javascript
jquery操作复选框(checkbox)的12个小技巧总结
Feb 04 Javascript
JavaScript实现找质数代码分享
Mar 24 Javascript
JavaScript Array对象详解
Mar 01 Javascript
JQuery 设置checkbox值二次无效的解决方法
Jul 22 Javascript
基于 D3.js 绘制动态进度条的实例详解
Feb 26 Javascript
jQuery实现input[type=file]多图预览上传删除等功能
Aug 02 jQuery
用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 goto语句简介和使用实例
2014/03/11 PHP
PHP5.2下preg_replace函数的问题
2015/05/08 PHP
WordPress中给文章添加自定义字段及后台编辑功能区域
2015/12/19 PHP
详解php中反射的应用
2016/03/15 PHP
php nginx 实时输出的简单实现方法
2018/01/21 PHP
chrome原生方法之数组
2011/11/30 Javascript
node+express+jade制作简单网站指南
2014/11/26 Javascript
JavaScript字符串常用的方法
2016/03/10 Javascript
JS简单测试循环运行时间的方法
2016/09/04 Javascript
探讨跨域请求资源的几种方式(总结)
2016/12/02 Javascript
jQuery实现滚动到底部时自动加载更多的方法示例
2018/02/18 jQuery
Vue 莹石摄像头直播视频实例代码
2018/08/31 Javascript
vue动态添加路由addRoutes之不能将动态路由存入缓存的解决
2019/02/19 Javascript
vue使用自定义指令实现拖拽
2021/01/29 Javascript
Vue作用域插槽实现方法及作用详解
2020/07/08 Javascript
vue+axios全局添加请求头和参数操作
2020/07/24 Javascript
原生JS实现多条件筛选
2020/08/19 Javascript
[05:41]2014DOTA2西雅图国际邀请赛 小组赛7月10日TOPPLAY
2014/07/10 DOTA
在Django的模板中使用认证数据的方法
2015/07/23 Python
python中多个装饰器的执行顺序详解
2018/10/08 Python
Python多线程threading模块用法实例分析
2019/05/22 Python
OpenCV图片漫画效果的实现示例
2020/08/18 Python
amazeui页面校验功能的实现代码
2020/08/24 HTML / CSS
泰国综合购物网站:Lazada泰国
2018/04/09 全球购物
小学教师的个人自我鉴定
2013/10/24 职场文书
村当支部个人对照检查材料思想汇报
2014/10/06 职场文书
关于有小孩的离婚协议书
2014/10/26 职场文书
迟到检讨书范文
2015/01/27 职场文书
团员个人年度总结
2015/02/26 职场文书
教师求职自荐信范文
2015/03/04 职场文书
预备党员介绍人意见
2015/06/01 职场文书
军训结束新闻稿
2015/07/17 职场文书
2019新员工试用期转正工作总结范文
2019/08/21 职场文书
Laravel中获取IP的真实地理位置
2021/04/01 PHP
python爬取网页版QQ空间,生成各类图表
2021/06/02 Python
利用Sharding-Jdbc进行分库分表的操作代码
2022/01/22 Java/Android