Bootstrap学习文档(一)

Boostrap中中文网

1. Bootstrap 是什么

Bootstrap 是最受欢迎的 HTML、CSS 和 JS 框架,用于开发响应式布局、移动设备优先的 WEB 项目,使用这个框架可以简单高效的开发出适配各种屏幕的网站应用,即是编写一套代码,适用多重平台(PC,平板,手机等)。Bootstrap 相比其他框架,自由度更高,它提供了基本的样式和基本的组件,而不会在创造上约束开发者的思维。

简单的用面向对象的来说,Bootstrap 为我而们封装了一些常用的类(class的名字)和接口(js的插件),这些类就是这个模版自定义的 css 样式,比如文本居中,css 代码是 text-align: center; 经过 Bootstrap封装后的类(class)名为 text-center,这样我们就可以直接使用text-center来使一个 p 标签或者 div 标签里面的内容居中了,从而实现我们软件工程中所说的代码重用。Bootstrap 中的js插件,不需要我们写 js 代码就能帮我们实现要用 js 来实现的效果,而是通过使用 Bootstrap 自定义的属性。

学习的时候直接到这里查 Bootstrap 的文档 Bootstrap中文网

2. Bootstrap 常用的基本模版

相比官网的基本模版,增加了一些常用的设置。

<!DOCTYPE html>
<html lang="zh-CN">
  <head>
    <meta charset="utf-8">
    <!-- 使IE浏览器用最新的edge引擎渲染页面 -->
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <!-- 让页面的最大宽度等于设备的宽度,页面初始化为不缩放状态,当然这样还是可以缩放的 -->
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <!-- 上述3个meta标签*必须*放在最前面,任何其他内容都*必须*跟随其后! -->
    <!-- 使360浏览器渲染页面时默认使用极速模式,考虑到国内360的大量用户 -->
    <meta name="renderer" content="webkit">
    <title>Bootstrap常用的模版</title>

    <!-- 项目导入的Bootstrap的css压缩文件 -->
    <link href="css/bootstrap.min.css" rel="stylesheet">
    <!-- 一个浏览器默认css样式重置文件,不用在手动重置了 -->
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/normalize/7.0.0/normalize.min.css">

    <!-- 下面两个文件是让IE9以下的IE浏览器兼容新增的HTML5标签和CSS3样式 -->
    <!--[if lt IE 9]>
      <script src="https://cdn.bootcss.com/html5shiv/3.7.3/html5shiv.min.js"></script>
      <script src="https://cdn.bootcss.com/respond.js/1.4.2/respond.min.js"></script>
    <![endif]-->
  </head>
  <body>
    <h1>写给女朋友的Bootstrap学习文档</h1>

    <!-- 为Bootstrap中封装的JavaScript插件提供支持,并且要在Bootstrap.js之前引入 -->
    <script src="https://cdn.bootcss.com/jquery/1.12.4/jquery.min.js"></script>
    <!-- 项目导入的Bootstrap的js压缩文件 -->
    <script src="js/bootstrap.min.js"></script>
  </body>
</html>

3. 栅格系统

  • Bootstrap 的布局容器

    • 1.container-fluid 自适应宽度100%
      1. container 适应屏幕的固定宽度,要比container占的宽度小一些
      • 屏幕宽度 >= 1200px 固定宽度为1270px
      • 992px <= 屏幕宽度 <= 1200px 固定宽度为970px
      • 768px <= 宽度 <= 992px 固定宽度为750px
      • 宽度< 768px 固定宽度auto(自适应)

注意:这两个class不能放在一起,可以是兄弟关系,但不能是嵌套的关系。如果不想让宽度随着屏幕而变化,可以给它一个!important来提升优先级,这样的话在所有尺寸下都是一个定值

示例代码如下:

<div class="container-fluid">
  <div style="background: red;">自适应宽度100%</div>
</div>
        
<div class="container" style="background: green; width: 1000px!important;">适应屏幕的固定宽度</div>

下面是错误写法
<div class="container-fluid">
  <div class="container" style="background: red;">错误写法</div>
</div>
  • Bootstrap 的栅格系统

在 Bootstrap 中一行分为 12列,也即是屏幕的宽度被分为了 12份,一份就是十二分之一的屏幕宽度,源码是通过宽度为百分比以及浮动实现的。
1. row 代表一行
2. col-- 代表列,第一个 * 和屏幕尺寸有关,第二个 * 是列数
如果列的和超过了12,那就会换行,如果有一列,这个数值超过了12,那就会按12去显示
lg 宽度>1200px
表现形式:
屏幕的宽度大于1200,一行显示n(结构里有几个div)列
屏幕的宽度小于1200,一行显示1列

 md 992px <= 宽度 <= 1200px
  表现形式:
    屏幕的宽度大于992并且小于1200,一行显示n(结构里有几个div)列
屏幕的宽度小于992,一行显示1列

 sm 768px <= 宽度 <= 992px
  表现形式:
    屏幕的宽度大于768并且小于992,一行显示n(结构里有几个div)列
屏幕的宽度小于768,一行显示1列

  xs 宽度 <= 768px
  表现形式:
    屏幕的宽度小于768,一行永远显示n(结构里有几个div)列

记忆口诀:LG(手机品牌)(lg),妈的(md),什么(sm),想死(xs)。(不是自己独创的,参考的网上的笑话。)

示例代码如下:
缩小浏览器宽度改变div的宽度,观察列数的变化。

<style>
  .row div{
    background: green;
    color: #fff;
    height: 100px;
    border: 1px solid #000;
  }
</style>

<div class="container">
  <div class="row">
      <div class="col-lg-13">超过12列啦啦啦</div>
  </div>
  <div class="row">
    <div class="col-lg-1">第1行第1列</div>
    <div class="col-lg-11">第1行第2列</div>
  </div>
  <div class="row">
    <div class="col-md-4">第2行第1列</div>
    <div class="col-md-4">第2行第2列</div>
    <div class="col-md-4">第2行第3列</div>
  </div>
  <div class="row">
    <div class="col-sm-4">第3行第1列</div>
    <div class="col-sm-4">第3行第2列</div>
    <div class="col-sm-4">第3行第3列</div>
  </div>
  <div class="row">
    <div class="col-xs-4">第4行第1列</div>
    <div class="col-xs-4">第4行第2列</div>
    <div class="col-xs-4">第4行第3列</div>
  </div>
</div>

3. 组合使用
示例代码如下:
缩小浏览器宽度改变div的大小,仔细观察,四列,变三列,再变两列,最后变成一列的效果

<style>
  .row div{
    background: green;
    color: #fff;
    height: 100px;
    border: 1px solid #000;
  }
</style>

<div class="container">
  <div class="row">
    <div class="col-lg-3 col-md-4 col-sm-6">第1行第1列</div>
    <div class="col-lg-3 col-md-4 col-sm-6">第1行第2列</div>
    <div class="col-lg-3 col-md-4 col-sm-6">第1行第3列</div>
    <div class="col-lg-3 col-md-4 col-sm-6">第1行第4列</div>
  </div>
  <div class="row">
    <div class="col-lg-3">第1行第1列</div>
  </div>
</div>

4. 列偏移
col--offset- 向右偏移,第一个 * 是和屏幕尺寸有关,第二个 * 是偏移的列数,如果偏移的数量大于12则会不起作用。

示例代码如下:

<style>
  .row div{
    background: green;
    color: #fff;
    height: 100px;
    border: 1px solid #000;
  }
</style>

<div class="container">
  <div class="row">
    <div class="col-lg-4">第1行第1列</div>
    <div class="col-lg-4">第1行第2列</div>
    <div class="col-lg-4">第1行第3列</div>
  </div>
  <div class="row">
     <!--可以放开注释试着玩玩,看看效果-->
    <!--<div class="col-lg-4 col-lg-offset-4">第2行第1列</div>-->
    <!--<div class="col-lg-4 col-lg-offset-5">第2行第1列</div>-->
    <!--<div class="col-lg-4 col-lg-offset-12">第2行第1列</div>-->
    <div class="col-lg-4 col-lg-offset-13">第2行第1列</div>
  </div>
</div>

5. 列排序
col--push(pull)- 第一个 * 是和屏幕尺寸有关,第二个 * 是往右或者往左的列数,不能超过12,否则就不起作用,push是往右推,pull是往左拉。

示例代码如下:

<style>
  .row div{
    background: green;
    color: #fff;
    height: 100px;
    border: 1px solid #000;
  }
</style>

<div class="container" style="border: 1px solid #f00;">
  <div class="row">
    <div class="col-lg-2 col-lg-push-5">第1行第1列</div>
    <div class="col-lg-2 col-lg-push-13">第1行第2列</div>
  </div>
  
  <div class="row">
    <div class="col-lg-2 col-lg-pull-1">第2行第1列</div>
    <div class="col-lg-2 col-lg-pull-13">第2行第2列</div>
  </div>
  
  <!--调换位置效果-->
  <div class="row">
    <div class="col-lg-2 col-lg-push-10">第3行第1列</div>
    <div class="col-lg-10 col-lg-pull-2">第3行第2列</div>
  </div>
</div>

6. 列偏移和列排序的区别

    1. 列偏移只能往右走,而列排序(pull、push)既可以往右边走,也可以往左边走
    1. 如果一行中有多列,offset偏移如果大的话,会换行再偏移,而push不会有这个问题,可以溢出父级的容器。

示例代码如下:

<style>
  .row div{
    background: green;
    color: #fff;
    height: 100px;
    border: 1px solid #000;
  }
</style>

<div class="container" style="border: 1px solid #f00;">
  <!--第一个区别-->
  <div class="row">
    <div class="col-lg-2 col-lg-offset-10">第1行第1列</div>
  </div>
  <div class="row">
    <div class="col-lg-2 col-lg-push-10">第2行第1列</div>
  </div>
  <div class="row">
    <div class="col-lg-2 col-lg-pull-2">第3行第1列</div>
  </div>
  
  <!--第二个区别-->
  <!-- 一行有多列总份数超过12则会出现折行-->
  <div class="row">
    <div class="col-lg-4">第4行第1列</div>
    <div class="col-lg-4 col-lg-offset-4">第4行第2列</div>
  </div>
  
  <div class="row">
    <div class="col-lg-4">第5行第1列</div>
    <div class="col-lg-4 col-lg-push-5">第5行第2列</div>
  </div>
</div>

7. 嵌套
每一列里面都可以在嵌套一行和n(不能超过12)列,那嵌套里面的元素就会以父级的宽度为基准,再分12个列。

示例代码如下:

<style>
  .row div{
    background: green;
    color: #fff;
    height: 100px;
    border: 1px solid #000;
  }
</style>

<div class="container" style="border: 1px solid #f00;">
  <div class="row">
    <div class="col-lg-6">
      第1行第1列
      <div class="row">
        <div class="col-lg-4"></div>
        <div class="col-lg-4"></div>
        <div class="col-lg-4"></div>
      </div>
    </div>
    <div class="col-lg-6">第1行第2列</div>
  </div>
</div>

本篇结束,写在最后

栅格系统用来网页布局,这是网页设计的第一步,另外Bootstrap的中文网上(官网的翻译版)里面的布局方式也值得我们学习,可以仔细观察一下。

Bootstrap 系列:

Bootstrap学习文档(一)
Bootstrap学习文档(二)
Bootstrap学习文档(三)
Bootstrap学习文档(四)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,080评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,422评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,630评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,554评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,662评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,856评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,014评论 3 408
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,752评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,212评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,541评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,687评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,347评论 4 331
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,973评论 3 315
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,777评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,006评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,406评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,576评论 2 349

推荐阅读更多精彩内容

  • Bootstrap是什么? 一套易用、优雅、灵活、可扩展的前端工具集--BootStrap。GitHub上介绍 的...
    凛0_0阅读 10,861评论 3 184
  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 13,737评论 1 92
  • 选择qi:是表达式 标签选择器 类选择器 属性选择器 继承属性: color,font,text-align,li...
    wzhiq896阅读 1,733评论 0 2
  • 第2章 Bootstrap 网格系统 在这一章,我们将讨论Bootstrap一个最重要的功能:网格系统。我们将学会...
    海上名月阅读 858评论 0 7
  • 选择qi:是表达式 标签选择器 类选择器 属性选择器 继承属性: color,font,text-align,li...
    love2013阅读 2,304评论 0 11