Bootstrap栅格系统的使用和理解2


Posted in Javascript onDecember 14, 2016

栅格系统

Bootstrap 提供了一套响应式、移动设备优先的流式栅格系统,随着屏幕或视口(viewport)尺寸的增加,系统会自动分为最多12列。它包含了易于使用的预定义类,还有强大的mixin 用于生成更具语义的布局。

简介

栅格系统用于通过一系列的行(row)与列(column)的组合来创建页面布局,你的内容就可以放入这些创建好的布局中。下面就介绍一下 Bootstrap 栅格系统的工作原理:

“行(row)”必须包含在 .container (固定宽度)或 .container-fluid (100% 宽度)中,以便为其赋予合适的排列(aligment)和内补(padding)。
通过“行(row)”在水平方向创建一组“列(column)”。
你的内容应当放置于“列(column)”内,并且,只有“列(column)”可以作为行(row)”的直接子元素。
类似 .row 和 .col-xs-4 这种预定义的类,可以用来快速创建栅格布局。Bootstrap 源码中定义的 mixin 也可以用来创建语义化的布局。
通过为“列(column)”设置 padding 属性,从而创建列与列之间的间隔(gutter)。通过为 .row 元素设置负值 margin 从而抵消掉为 .container 元素设置的 padding,也就间接为“行(row)”所包含的“列(column)”抵消掉了padding。
负值的 margin就是下面的示例为什么是向外突出的原因。在栅格列中的内容排成一行。
栅格系统中的列是通过指定1到12的值来表示其跨越的范围。例如,三个等宽的列可以使用三个 .col-xs-4 来创建。
如果一“行(row)”中包含了的“列(column)”大于 12,多余的“列(column)”所在的元素将被作为一个整体另起一行排列。
栅格类适用于与屏幕宽度大于或等于分界点大小的设备 , 并且针对小屏幕设备覆盖栅格类。 因此,在元素上应用任何 .col-md-* 栅格类适用于与屏幕宽度大于或等于分界点大小的设备 , 并且针对小屏幕设备覆盖栅格类。 因此,在元素上应用任何 .col-lg-* 不存在, 也影响大屏幕设备。

栅格参数

通过下表可以详细查看 Bootstrap 的栅格系统是如何在多种屏幕设备上工作的。

Bootstrap栅格系统的使用和理解2

我的理解是当到达不同的屏幕宽度,特定的类起作用。

但如果屏幕宽1366px,并没用.col-lg- 的类标识。会以.col-md-设定栅格内容宽度。如果.col-md-也没有,会以.col-sm- 设定。大概如此。

当.col-xx-xx不在自己的作用范围内时,便失效。如果是div元素就会占一整行,宽与.container 元素相同。(错误请指出)。

demo1:

注意:引 必要的.css .js 文件

<!DOCTYPE html>
<html lang="zh-CN">
<head>
 <meta charset="utf-8">
 <meta http-equiv="X-UA-Compatible" content="IE=edge">
 <meta name="viewport" content="width=device-width, initial-scale=1">
 <title>Bootstrap 模板</title>
 <link href="lib/bootstrap/css/bootstrap.css" rel="stylesheet">
  <!--[if lt IE 9]>
  <script src="//cdn.bootcss.com/html5shiv/3.7.2/html5shiv.min.js"></script>
  <script src="//cdn.bootcss.com/respond.js/1.4.2/respond.min.js"></script>
  <![endif]-->
 <style>
 .row>div{
  border: 1px solid #333;
  background-color: #e0e0e0;
 }
 </style>
</head>
<body>
<!-- bootstrap 栅格系统 试用 -->
<!-- Bootstrap 提供了一套响应式、移动设备优先的流式栅格系统,随着屏幕或视口(viewport)尺寸的增加,系统会自动分为最多12列。它包含了易于使用的预定义类,还有强大的mixin 用于生成更具语义的布局。 -->
<strong>改变浏览器宽度查看效果</strong>
<div class="container">
 <div class="row">
 <div class="col-lg-1 col-md-2 col-sm-4 col-xs-6"></div>
 <div class="col-lg-1 col-md-2 col-sm-4 col-xs-6"></div>
 <div class="col-lg-1 col-md-2 col-sm-4 col-xs-6"></div>
 <div class="col-lg-1 col-md-2 col-sm-4 col-xs-6"></div>
 <div class="col-lg-1 col-md-2 col-sm-4 col-xs-6"></div>
 <div class="col-lg-1 col-md-2 col-sm-4 col-xs-6"></div>
 <div class="col-lg-1 col-md-2 col-sm-4 col-xs-6"></div>
 <div class="col-lg-1 col-md-2 col-sm-4 col-xs-6"></div>
 <div class="col-lg-1 col-md-2 col-sm-4 col-xs-6"></div>
 <div class="col-lg-1 col-md-2 col-sm-4 col-xs-6"></div>
 <div class="col-lg-1 col-md-2 col-sm-4 col-xs-6"></div>
 <div class="col-lg-1 col-md-2 col-sm-4 col-xs-6"></div>
 </div>
 
</div>
<strong>一行显示不下就会挤到下一行</strong>


<script src="lib/jquery/jquery.js"></script>
<script src="lib/bootstrap/js/bootstrap.js"></script>

<script>
 $(function(){
 var content = null;
 showText();
 function showText(){
  var width = $(window).width();
  if(width<768){
   content = "超小屏幕设备(手机)(宽度小于768px)的时候<br>因为设置了类名 有 col-xs-6<br>所以一行显示2个";
  }else if(width<992){
   content = "小屏幕设备(平板)(宽度大于768px 小于992px)的时候<br> 因为设置了类名 有 col-sm-4<br> 所以一行显示3个";
  }else if(width<1200){
   content = "中等屏幕设备(桌面显示器)(宽度大于992px 小于1200px)的时候 <br>因为设置了类名 有 col-md-2<br> 所以一行显示6个";
  }else{
   content = "大屏幕设备(大桌面显示器)(宽度大于1200)的时候<br> 因为设置了类名 有 col-lg-1 <br>所以一行显示12个";
  }
  $(".container>div>div").html(content); 
 }

 $(window).on('resize', function(event) {
  showText();
 });
 
 });
</script>
</body>
</html>

流式布局容器
将最外面的布局元素 .container 修改为 .container-fluid,就可以将固定宽度的栅格布局转换为 100% 宽度的布局。

<!DOCTYPE html>
<html lang="zh-CN">
<head>
 <meta charset="utf-8">
 <meta http-equiv="X-UA-Compatible" content="IE=edge">
 <meta name="viewport" content="width=device-width, initial-scale=1,user-scalable=0">
 <title>container & container-fluid</title>
 <link href="../lib/bootstrap/css/bootstrap.css" rel="stylesheet">
 <!--[if lt IE 9]>
 <script src="../lib/html5shiv/html5shiv.min.js"></script>
 <script src="../lib/respond/respond.js"></script>
 <![endif]-->
 <!--自己的css文件-->
 <style>
  .container{
   background: yellowgreen;
   height: 400px;
  }
  .container-fluid{
   background: red;
   height: 100px;
  }
 </style>
</head>
<body>
 <!--布局容器 没有高度 响应式容器-->
 <div class="container">

 </div>
 <!-- 将最外面的布局元素 .container 修改为 .container-fluid,就可以将固定宽度的栅格布局转换为 100% 宽度的布局。 -->
 <div class="container-fluid">

 </div>


<!--因为 bootstrap 是依赖 jquery 引用jquery文件-->
<script src="../lib/jquery/jquery.js"></script>
<script src="../lib/bootstrap/js/bootstrap.js"></script>
</body>
</html>

列偏移
使用 .col-md-offset-* 类可以将列向右侧偏移。这些类实际是通过使用 * 选择器为当前元素增加了左侧的边距(margin)。例如,.col-md-offset-4 类将 .col-md-4 元素向右侧偏移了4个列(column)的宽度。

<!DOCTYPE html>
<html lang="zh-CN">
 <head>
 <meta charset="utf-8">
 <meta http-equiv="X-UA-Compatible" content="IE=edge">
 <meta name="viewport" content="width=device-width, initial-scale=1">
 <title>Bootstrap 模板</title>
 <link href="lib/bootstrap/css/bootstrap.css" rel="stylesheet">
 <!--[if lt IE 9]>
  <script src="//cdn.bootcss.com/html5shiv/3.7.2/html5shiv.min.js"></script>
  <script src="//cdn.bootcss.com/respond.js/1.4.2/respond.min.js"></script>
 <![endif]-->
 <style>
  .row>div{
  border: 1px solid #333;
  background-color: #e0e0e0;
  }
 </style>
 </head>
 <body>
 
 <div class="container">
  <div class="row">
  <div class="col-md-4">.col-md-4</div>
  <div class="col-md-4 col-md-offset-4">.col-md-4 .col-md-offset-4</div>
  </div>
  <div class="row">
  <div class="col-md-3 col-md-offset-3">.col-md-3 .col-md-offset-3</div>
  <div class="col-md-3 col-md-offset-3">.col-md-3 .col-md-offset-3</div>
  </div>
  <div class="row">
  <div class="col-md-6 col-md-offset-3">.col-md-6 .col-md-offset-3</div>
  </div>
 </div>


 <script src="lib/jquery/jquery.js"></script>
 <script src="lib/bootstrap/js/bootstrap.js"></script>
 </body>
</html>

列排序

通过使用 .col-md-push-* 和 .col-md-pull-* 类就可以很容易的改变列(column)的顺序。

<!DOCTYPE html>
<html lang="zh-CN">
 <head>
 <meta charset="utf-8">
 <meta http-equiv="X-UA-Compatible" content="IE=edge">
 <meta name="viewport" content="width=device-width, initial-scale=1">
 <title>Bootstrap 模板</title>
 <link href="lib/bootstrap/css/bootstrap.css" rel="stylesheet">
 <!--[if lt IE 9]>
  <script src="//cdn.bootcss.com/html5shiv/3.7.2/html5shiv.min.js"></script>
  <script src="//cdn.bootcss.com/respond.js/1.4.2/respond.min.js"></script>
 <![endif]-->
 <style>
  .row>div{
  border: 1px solid #333;
  background-color: #e0e0e0;
  }
 </style>
 </head>
 <body>
 
 <div class="container">
  
  <div class="row">
  <div class="col-md-9 col-md-push-3">.col-md-9 .col-md-push-3</div>
  <div class="col-md-3 col-md-pull-9">.col-md-3 .col-md-pull-9</div>
 </div>

 </div>


 <script src="lib/jquery/jquery.js"></script>
 <script src="lib/bootstrap/js/bootstrap.js"></script>
 </body>
</html>

以上为初学时,学习到的。有错误请指出。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
深入理解javascript作用域和闭包
Sep 23 Javascript
javaScript中with函数用法实例分析
Jun 08 Javascript
js的flv视频播放器插件使用方法
Jun 23 Javascript
JS学习之表格的排序简单实例
May 16 Javascript
jQuery 3.0十大新特性
Jul 06 Javascript
jQuery学习之DOM节点的插入方法总结
Jan 22 Javascript
Javascript实现购物车功能的详细代码
May 08 Javascript
element-ui循环显示radio控件信息的方法
Aug 24 Javascript
webpack 3.X学习之多页面打包的方法
Sep 04 Javascript
JS实现transform实现扇子效果
Jan 17 Javascript
浅谈vue 二级路由嵌套和二级路由高亮问题
Aug 06 Javascript
Vue + iView实现Excel上传功能的完整代码
Jun 22 Vue.js
jQuery的extend方法【三种】
Dec 14 #Javascript
AngularJS实现给动态生成的元素绑定事件的方法
Dec 14 #Javascript
Bootstrap导航条的使用和理解3
Dec 14 #Javascript
jQuery学习笔记之入门
Dec 14 #Javascript
Bootstrap轮播图的使用和理解4
Dec 14 #Javascript
12 款 JS 代码测试必备工具(翻译)
Dec 13 #Javascript
使用BootStrap实现悬浮窗口的效果
Dec 13 #Javascript
You might like
PHP中可以自动分割查询字符的Parse_str函数使用示例
2014/07/25 PHP
php实现网站顶踩功能的完整前端代码
2015/07/19 PHP
通过修改配置真正解决php文件上传大小限制问题(nginx+php)
2015/09/23 PHP
PHP基于单例模式编写PDO类的方法
2016/09/13 PHP
layui数据表格自定义每页条数limit设置
2019/10/26 PHP
Extjs Ext.MessageBox.confirm 确认对话框详解
2010/04/02 Javascript
修改jQuery Validation里默认的验证方法
2012/02/14 Javascript
jQuery的$.proxy()应用示例介绍
2014/04/03 Javascript
通过JS来动态的修改url,实现对url的增删查改
2014/09/01 Javascript
jQuery解析XML与传统JavaScript方法的差别实例分析
2015/03/05 Javascript
JS实现兼容性好,自动置顶的淘宝悬浮工具栏效果
2015/09/18 Javascript
javaScript如何跳出多重循环break、continue
2016/09/01 Javascript
数组Array的排序sort方法
2017/02/17 Javascript
angularjs封装$http为factory的方法
2017/05/18 Javascript
jQuery简单绑定单个事件的方法示例
2017/06/10 jQuery
JavaScript在控件上添加倒计时功能的实现代码
2017/07/04 Javascript
Angular在模板驱动表单中自定义校验器的方法
2017/08/09 Javascript
nodejs项目windows下开机自启动的方法
2017/11/22 NodeJs
Angular模版驱动表单的使用总结
2018/05/05 Javascript
Python ORM框架SQLAlchemy学习笔记之映射类使用实例和Session会话介绍
2014/06/10 Python
django从请求到响应的过程深入讲解
2018/08/01 Python
详解pandas赋值失败问题解决
2020/11/29 Python
美国派对用品及装饰品网上商店:Shindigz
2016/07/30 全球购物
Michael Kors香港官网:美国奢侈品品牌
2019/12/26 全球购物
兰蔻法国官方网站:Lancôme法国
2020/02/22 全球购物
自荐书4要点
2014/01/25 职场文书
大学自我评价
2014/02/12 职场文书
个人委托书格式
2014/04/04 职场文书
英语求职信范文
2014/05/23 职场文书
优秀应届本科生求职信
2014/07/19 职场文书
民主生活会对照检查材料思想汇报
2014/09/27 职场文书
2015年机关党委工作总结
2015/05/23 职场文书
大国崛起观后感
2015/06/02 职场文书
导游词之安徽巢湖
2019/12/26 职场文书
Redis做数据持久化的解决方案及底层原理
2021/07/15 Redis
《杜鹃的婚约》OP主题曲「凸凹」无字幕影像公开
2022/04/08 日漫