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 相关文章推荐
Javascript 布尔型分析
Dec 22 Javascript
超酷的网页音乐播放器DewPlayer使用方法
Dec 18 Javascript
javascript日期对象格式化为字符串的实现方法
Jan 14 Javascript
详解JavaScript中的表单验证
Jun 16 Javascript
jQuery实现按钮的点击 全选/反选 单选框/复选框 文本框 表单验证
Jun 25 Javascript
跟我学习javascript的垃圾回收机制与内存管理
Nov 23 Javascript
微信小程序开发之IOS和Android兼容的问题
Sep 26 Javascript
解决Layui选择全部,换页checkbox复选框重新勾选的问题方法
Aug 14 Javascript
前后端如何实现登录token拦截校验详解
Sep 03 Javascript
详解Element 指令clickoutside源码分析
Feb 15 Javascript
浅谈vue中$event理解和框架中在包含默认值外传参
Aug 07 Javascript
Vue Element校验validate的实例
Sep 21 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 高手之路(一)
2006/10/09 PHP
PHP显示今天、今月、上月、今年的起点/终点时间戳的代码
2011/05/25 PHP
分享一个PHP数据流应用的简单例子
2012/06/01 PHP
eAccelerator的安装与使用详解
2013/06/13 PHP
PHP FTP操作类代码( 上传、拷贝、移动、删除文件/创建目录)
2014/05/10 PHP
详解PHP中的状态模式编程
2015/08/11 PHP
thinkPHP微信分享接口JSSDK用法实例
2017/07/07 PHP
基于PHP实现微信小程序客服消息功能
2019/08/12 PHP
JavaScript delete 属性的使用
2009/10/08 Javascript
jQuery生成asp.net服务器控件的代码
2010/02/04 Javascript
js数组转json并在后台对其解析具体实现
2013/11/20 Javascript
jquery实现动态画圆
2014/12/04 Javascript
JavaScript 性能优化小结
2015/10/12 Javascript
实例代码详解jquery.slides.js
2015/11/16 Javascript
js实现仿qq消息的弹出窗效果
2016/01/06 Javascript
php基于redis处理session的方法
2016/03/14 Javascript
关于List.ToArray()方法的效率测试
2016/09/30 Javascript
JavaScript“尽快失败”的原则实例详解
2016/10/08 Javascript
JavaScript文件的同步和异步加载的实现代码
2017/08/19 Javascript
微信小程序js文件改变参数并在视图上及时更新【推荐】
2018/06/11 Javascript
利用js将ajax获取到的后台数据动态加载至网页中的方法
2018/08/08 Javascript
ElementUI Tag组件实现多标签生成的方法示例
2019/07/08 Javascript
antdesign-vue结合sortablejs实现两个table相互拖拽排序功能
2021/01/08 Vue.js
python基础教程之数字处理(math)模块详解
2014/03/25 Python
使用Python编写提取日志中的中文的脚本的方法
2015/04/30 Python
Python发送http请求解析返回json的实例
2018/03/26 Python
对Python Pexpect 模块的使用说明详解
2019/02/14 Python
python全局变量引用与修改过程解析
2020/01/07 Python
Python使用PyQt5/PySide2编写一个极简的音乐播放器功能
2020/02/07 Python
Python爬虫scrapy框架Cookie池(微博Cookie池)的使用
2021/01/13 Python
2014年五四青年节活动策划书
2014/04/22 职场文书
2016公司年会通知范文
2015/04/25 职场文书
2015年青年志愿者协会工作总结
2015/04/27 职场文书
教师节表彰会主持词
2015/07/06 职场文书
2015年“我们的节日·重阳节”活动总结
2015/07/29 职场文书
Win11更新失败并提示0xc1900101
2022/04/19 数码科技