学习使用Bootstrap栅格系统


Posted in Javascript onMay 11, 2017

Bootstrap之栅格系统

Bootstrap 提供了一套响应式、移动设备优先的流式栅格系统。

一. 移动设备优先

所谓移动设备优先,重要的是屏幕,不是设备。

移动设备优先就是说起初样式是在移动设备写的,然后写到sm尺寸的时候样式得改变了,于是就加media screen max-width >=768, 再写sm的样式,这样尺寸递进就完成了所有的媒体查询,由于不加media query的样式是在最小尺寸,也就是移动设备上写的,所以叫做移动设备优先。

移动设备优先有一份非常重要的 meta,用于设置屏幕和设备等宽以及是否运行用户缩放,及缩放比例的问题。

//分别为:屏幕宽度和设备一致、初始缩放比例、最大缩放比例和禁止用户缩放

<meta name="viewport" content="width=device-width, initial-scale=1,maximum-scale=1, user-scalable=no">

二. 栅格系统

1. 布局容器

Bootstrap 需要为页面内容和栅格系统包裹一个.container容器。由于 padding等属性的原因,这两种容器类不能相互嵌套。

//固定宽度
<div class="container"></div>

//100%宽度
<div class="container-fluid"></div>

栅格系统中,浏览器会随着屏幕的大小的增减自动分配最多12列。通过一系列的行(row)与列(column)的组合来创建页面布局。

2. 栅格系统工作原理:

“行(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-*不存在, 也影响大屏幕设备。

3. 栅格参数

学习使用Bootstrap栅格系统

栅格系统最外层区分了四种宽度的浏览器:超小屏(<768px)、小屏(>=768px)、中屏(>=992px)和大屏(>=1200px)。而内层.container 容器的自适应宽度为:自动、750px、970px 和 1170px。自动的意思为,如果你是手机屏幕,则全面独占一行显示。

4. 实践演示代码

<!DOCTYPE html>
  <html lang="en">
  <head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scale=no">
  <title>栅格系统</title>
  <link rel="stylesheet" href="../bootstrap-3.3.4/css/bootstrap.min.css" rel="external nofollow" >
  <style>
  .a{
    height:50px;
    border: 1px solid black;
    background-color: #ccc;
  }
  .b{
    height:100px;
    border: 1px solid black;
    background-color: #eee;
  }
  </style>
  </head>
  <body>

  <div class="container a ">
    固定宽度
  </div>
  <div class="container-fluid b ">
    100%宽度
  </div>

  <br><!-- 创建最多 12 列的响应式行(问题:当屏幕小于一定程度时,每行只会显示1列) -->
  <div class="container ">
    <div class="row">
      <div class="col-md-1 a">1</div>
      <div class="col-md-1 a">2</div>
      <div class="col-md-1 a">3</div>
      <div class="col-md-1 a">4</div>
      <div class="col-md-1 a">5</div>
      <div class="col-md-1 a">6</div>
      <div class="col-md-1 a">7</div>
      <div class="col-md-1 a">8</div>
      <div class="col-md-1 a">9</div>
      <div class="col-md-1 a">10</div>
      <div class="col-md-1 a">11</div>
      <div class="col-md-1 a">12</div>
    </div>
    <div class="row">
      <div class="col-md-8 a">8</div>
      <div class="col-md-4 a">4</div>
    </div>
    <div class="row">
      <div class="col-md-4 a">4</div>
      <div class="col-md-4 a">4</div>
      <div class="col-md-4 a">4</div>
    </div>
  </div>

  <br><!-- 四种屏幕分类全部激活,大屏幕是每行显示4列,中等屏幕每行显示3列,小屏幕和超小屏幕每行显示2列 -->
  <div class="container">
    <div class="row">
      <div class="col-lg-3 col-md-4 col-sm-6 col-xs-6 a">4</div>
      <div class="col-lg-3 col-md-4 col-sm-6 col-xs-6 a">4</div>
      <div class="col-lg-3 col-md-4 col-sm-6 col-xs-6 a">4</div>
      <div class="col-lg-3 col-md-4 col-sm-6 col-xs-6 a">4</div>
      <div class="col-lg-3 col-md-4 col-sm-6 col-xs-6 a">4</div>
      <div class="col-lg-3 col-md-4 col-sm-6 col-xs-6 a">4</div>
      <div class="col-lg-3 col-md-4 col-sm-6 col-xs-6 a">4</div>
      <div class="col-lg-3 col-md-4 col-sm-6 col-xs-6 a">4</div>
      <div class="col-lg-3 col-md-4 col-sm-6 col-xs-6 a">4</div>
      <div class="col-lg-3 col-md-4 col-sm-6 col-xs-6 a">4</div>
      <div class="col-lg-3 col-md-4 col-sm-6 col-xs-6 a">4</div>
      <div class="col-lg-3 col-md-4 col-sm-6 col-xs-6 a">4</div>
    </div>
  </div>

  <br><!-- 列偏移,中间保持空隙 -->
  <div class="container">
    <div class="row">
      <div class="col-md-8 a">8</div>
      <div class="col-md-3 col-md-offset-1 a">3</div>
    </div>
  </div>

  <br><!-- 嵌套,嵌满也是 12 列 -->
  <div class="container">
    <div class="row">
      <div class="col-md-9 a">
        <div class="col-md-8 a">1-8</div>
        <div class="col-md-4 a">9-12</div>
      </div>
      <div class="col-md-3 a">11-12</div>
    </div>
  </div>

  <br><!-- 交换列的位置 -->
  <div class="container">
    <div class="row">
      <div class="col-md-9 a">9</div> <!-- 向右移动3列 -->
      <div class="col-md-3 a">3</div> <!-- 向左移动9列 -->
    </div>
    <div class="row">
      <div class="col-md-9 col-md-push-3 a">9</div> <!-- 向右移动3列,push 向右移动 -->
      <div class="col-md-3 col-md-pull-9 a">3</div> <!-- 向左移动9列,pull 向左移动 -->
    </div>
  </div>
  </body>
  </html>

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

Javascript 相关文章推荐
Javascript 不能释放内存.
Sep 07 Javascript
js location.replace与location.reload的区别
Sep 08 Javascript
浅析offsetLeft,Left,clientLeft之间的区别
Nov 30 Javascript
node.js实现BigPipe详解
Dec 05 Javascript
jquery实现鼠标拖拽滑动效果来选择数字的方法
May 04 Javascript
学习JavaScript设计模式之策略模式
Jan 12 Javascript
Vue异步组件使用详解
Apr 08 Javascript
JavaScript创建对象的常用方式总结
Aug 10 Javascript
jQuery使用each遍历循环的方法
Sep 19 jQuery
Angular PWA使用的Demo示例
Jan 31 Javascript
Vue项目部署的实现(阿里云+Nginx代理+PM2)
Mar 26 Javascript
微信公众号H5之微信分享常见错误和问题(小结)
Nov 14 Javascript
jQuery实现的简单在线计算器功能
May 11 #jQuery
学习使用Bootstrap页面排版样式
May 11 #Javascript
Angularjs 与 bower安装和使用详解
May 11 #Javascript
学习使用Bootstrap输入框、导航、分页等常用组件
May 11 #Javascript
es6学习笔记之Async函数基本教程
May 11 #Javascript
Bootstrap模态框插件使用详解
May 11 #Javascript
canvas实现弧形可拖动进度条效果
May 11 #Javascript
You might like
PHP字符转义相关函数小结(php下的转义字符串)
2007/04/12 PHP
javascript语句中的CDATA标签的意义
2007/05/09 Javascript
JQuery与JSon实现的无刷新分页代码
2011/09/13 Javascript
javascript五图轮播切换实用版
2012/08/17 Javascript
jQuery当鼠标悬停时放大图片的效果实例
2013/07/03 Javascript
jQuery响应enter键的实现思路
2014/04/18 Javascript
Javascript中实现trim()函数的两种方法
2015/02/04 Javascript
详解AngularJS的通信机制
2015/06/18 Javascript
举例详解Python中smtplib模块处理电子邮件的使用
2015/06/24 Javascript
JavaScript中字符串拼接的基本方法
2015/07/07 Javascript
jquery.cookie.js用法实例详解
2015/12/25 Javascript
JS中多步骤多分步的StepJump组件实例详解
2016/04/01 Javascript
jQuery数据检索中根据关键字快速定位GridView指定行的实现方法
2016/06/08 Javascript
浅谈js内置对象Math的属性和方法(推荐)
2016/09/19 Javascript
Bootstrap modal使用及点击外部不消失的解决方法
2016/12/13 Javascript
vue中如何引入jQuery和Bootstrap
2017/04/10 jQuery
Vue组件内部实现一个双向数据绑定的实例代码
2019/04/04 Javascript
微信小程序跨页面传递data数据方法解析
2019/12/13 Javascript
Vue2.4+新增属性.sync、$attrs、$listeners的具体使用
2020/03/08 Javascript
Python的消息队列包SnakeMQ使用初探
2016/06/29 Python
Python 安装setuptools和pip工具操作方法(必看)
2017/05/22 Python
python批量修改图片后缀的方法(png到jpg)
2018/10/25 Python
python删除文件夹下相同文件和无法打开的图片
2019/07/16 Python
python的pyecharts绘制各种图表详细(附代码)
2019/11/11 Python
Django实现随机图形验证码的示例
2020/10/15 Python
HTML5实现直播间评论滚动效果的代码
2020/05/27 HTML / CSS
Harman Audio官方商店:购买JBL、Harman Kardon、Infinity和AKG
2019/12/05 全球购物
中科方德软件测试面试题
2016/04/21 面试题
新闻系毕业生推荐信
2013/11/16 职场文书
专科毕业生自我鉴定
2013/12/01 职场文书
幼儿园门卫岗位职责
2014/02/14 职场文书
2014年公司迎新年活动方案
2014/02/24 职场文书
吨的认识教学反思
2014/04/27 职场文书
导游词之湖州-太湖
2019/10/11 职场文书
Nginx本地目录映射实现代码实例
2021/03/31 Servers
CSS3 实现的图片悬停的切换按钮
2021/04/13 HTML / CSS