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 相关文章推荐
showModelessDialog()使用详解
Sep 21 Javascript
使用变量动态设置js的属性名
Oct 19 Javascript
Javascript中的方法和匿名方法实例详解
Jun 13 Javascript
JS禁用页面上所有控件的实现方法(附demo源码下载)
Dec 17 Javascript
基于js里调用函数时,函数名带括号和不带括号的区别
Jul 28 Javascript
浅析使用BootStrap TreeView插件实现灵活配置快递模板
Nov 28 Javascript
js实现微信/QQ直接跳转到支付宝APP打开口令领红包功能
Jan 09 Javascript
jQuery实现的简单图片轮播效果完整示例
Feb 08 jQuery
写一个移动端惯性滑动&amp;回弹Vue导航栏组件 ly-tab
Mar 06 Javascript
jquery.onoff实现简单的开关按钮功能(推荐)
May 24 jQuery
小程序识别身份证,银行卡,营业执照,驾照的实现
Nov 05 Javascript
Node.js API详解之 tty功能与用法实例分析
Apr 27 Javascript
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
抓取并下载CSS中所有图片文件的php代码
2011/09/26 PHP
PHP的cURL库简介及使用示例
2015/02/06 PHP
php获取文件类型和文件信息的方法
2015/07/10 PHP
PHP全局使用Laravel辅助函数dd
2019/12/26 PHP
Javascript操纵Cookie实现购物车程序
2007/02/15 Javascript
Add a Formatted Table to a Word Document
2007/06/15 Javascript
fireworks菜单生成器mm_menu.js在 IE 7.0 显示问题的解决方法
2009/10/20 Javascript
Javascript下判断是否为闰年的Datetime包
2010/10/26 Javascript
点击隐藏页面左栏或右栏实现js代码
2013/04/01 Javascript
JavaScript栏目列表隐藏/显示简单实现
2013/04/03 Javascript
js遍历、动态的添加数据的小例子
2013/06/22 Javascript
js实现可折叠展开的手风琴菜单效果
2015/09/07 Javascript
jQuery操作cookie
2016/08/08 Javascript
超全面的javascript中变量命名规则
2017/02/09 Javascript
Vue监听数组变化源码解析
2017/03/09 Javascript
JavaScript禁止微信浏览器下拉回弹效果
2017/05/16 Javascript
vuejs+element-ui+laravel5.4上传文件的示例代码
2017/08/12 Javascript
vue微信分享 vue实现当前页面分享其他页面
2017/12/02 Javascript
解决Vue-cli npm run build生产环境打包,本地不能打开的问题
2018/09/20 Javascript
el-input 标签中密码的显示和隐藏功能的实例代码
2019/07/19 Javascript
Vue实现滑动拼图验证码功能
2019/09/15 Javascript
微信小程序 多行文本显示...+显示更多按钮和收起更多按钮功能
2019/09/26 Javascript
JavaScript制作3D旋转相册
2020/08/02 Javascript
在vue中使用echarts(折线图的demo,markline用法)
2020/07/20 Javascript
微信小程序canvas动态时钟
2020/10/22 Javascript
JavaScript实现瀑布流布局的3种方式
2020/12/27 Javascript
Python(Tornado)模拟登录小米抢手机
2013/11/12 Python
python pandas 时间日期的处理实现
2019/07/30 Python
python实现ssh及sftp功能(实例代码)
2020/03/16 Python
戴森台湾线上商城:Dyson Taiwan
2018/05/21 全球购物
Monki官网:斯堪的纳维亚的独立时尚品牌
2020/11/09 全球购物
DBA的职责都有哪些
2012/05/16 面试题
会计毕业生自我鉴定
2013/11/04 职场文书
运动会邀请函范文
2014/01/31 职场文书
华山导游词
2015/02/03 职场文书
2015年教师师德师风承诺书
2015/04/28 职场文书