zoukankan      html  css  js  c++  java
  • Bootstrap框架

    一、Bootstrap介绍

    Bootstrap是Twitter开源的基于HTML、CSS、JavaScript的前端框架。

    它是为实现快速开发Web应用程序而设计的一套前端工具包。

    它支持响应式布局,并且在V3版本之后坚持移动设备优先

    二、为什么要使用Bootstrap?

    在Bootstrap出现之前:

    命名:重复、复杂、无意义(想个名字费劲)

    样式:重复、冗余、不规范、不和谐

    页面:错乱、不规范、不和谐

    在使用Bootstrap之后: 各种命名都统一并且规范化。 页面风格统一,画面和谐。

    三、Bootstrap下载

    官方地址:https://getbootstrap.com

    中文地址:http://www.bootcss.com/

    我们使用V3版本的Bootstrap,我们下载的是用于生产环境的Bootstrap。

    四、Bootstrap模板

    bootstrap-3.3.7-dist/
    ├── css  // CSS文件
    │   ├── bootstrap-theme.css  // Bootstrap主题样式文件
    │   ├── bootstrap-theme.css.map
    │   ├── bootstrap-theme.min.css  // 主题相关样式压缩文件
    │   ├── bootstrap-theme.min.css.map
    │   ├── bootstrap.css
    │   ├── bootstrap.css.map
    │   ├── bootstrap.min.css  // 核心CSS样式压缩文件
    │   └── bootstrap.min.css.map
    ├── fonts  // 字体文件
    │   ├── glyphicons-halflings-regular.eot
    │   ├── glyphicons-halflings-regular.svg
    │   ├── glyphicons-halflings-regular.ttf
    │   ├── glyphicons-halflings-regular.woff
    │   └── glyphicons-halflings-regular.woff2
    └── js  // JS文件
        ├── bootstrap.js
        ├── bootstrap.min.js  // 核心JS压缩文件
        └── npm.js

    注意:由于Bootstrap的某些组件依赖于jQuery,所以请确保下载对应版本的jQuery文件,来保证Bootstrap相关组件运行正常

    Bootstrap 的所有 JavaScript 插件都依赖jQuery ,必须放Jquery在前边
        <meta charset="utf-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <!-- 兼容IE浏览器 -->
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <!-- 适用于手机等移动端-->
        
    <!-- 上述3个meta标签*必须*放在最前面,任何其他内容都*必须*跟随其后! -->

    五、Bootstrap的引入

    本地引入:

    <link rel="stylesheet" type="text/css" href="./static/bootstrap/css/bootstrap.min.css">
    <script src="./static/bootstrap/js/bootstrap.min.js"></script>

    注意:引入前要先引入jQuery

    在线引入:

    <link href="http://cdn.bootcss.com/bootstrap/3.3.6/css/bootstrap.min.css" rel="stylesheet">
     
    <script src="http://cdn.bootcss.com/jquery/3.0.0/jquery.min.js"></script>
    <script src="http://cdn.bootcss.com/bootstrap/3.3.6/js/bootstrap.min.js"></script>六

    六、布局容器

    6.1 布局容器

    Bootstrap 需要为页面内容和栅格系统包裹一个 .container 容器。我们提供了两个作此用处的类。注意,由于 padding 等属性的原因,这两种 容器类不能互相嵌套。

    .container 类用于固定宽度并支持响应式布局的容器

    <div class="container">
      ...
    </div>

    .container-fluid 类用于 100% 宽度,占据全部视口(viewport)的容器

    <div class="container-fluid">
      ...
    </div>

    七、 栅格系统

    Bootstrap 提供了一套响应式、移动设备优先的流式栅格系统,随着屏幕或视口(viewport)尺寸的增加,系统会自动分为最多12列

    7.1 栅格系统简介

    栅格系统用于通过一系列的行(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-*不存在, 也影响大屏幕设备。

    7.2 栅格参数

    优先以大屏幕类前缀的排列为基准

    使用单一的一组 .col-md-* 栅格类,就可以创建一个基本的栅格系统,在手机和平板设备上一开始是堆叠在一起的(超小屏幕到小屏幕这一范围),在桌面(中等)屏幕设备上变为水平排列。所有“列(column)必须放在 ” .row 内。7.3 栅格系统使用

    <div class="row">
      <div class="col-md-1">.col-md-1</div>
      <div class="col-md-1">.col-md-1</div>
      <div class="col-md-1">.col-md-1</div>
      <div class="col-md-1">.col-md-1</div>
      <div class="col-md-1">.col-md-1</div>
      <div class="col-md-1">.col-md-1</div>
      <div class="col-md-1">.col-md-1</div>
      <div class="col-md-1">.col-md-1</div>
      <div class="col-md-1">.col-md-1</div>
      <div class="col-md-1">.col-md-1</div>
      <div class="col-md-1">.col-md-1</div>
      <div class="col-md-1">.col-md-1</div>
    </div>
    <div class="row">
      <div class="col-md-8">.col-md-8</div>
      <div class="col-md-4">.col-md-4</div>
    </div>
    <div class="row">
      <div class="col-md-4">.col-md-4</div>
      <div class="col-md-4">.col-md-4</div>
      <div class="col-md-4">.col-md-4</div>
    </div>
    <div class="row">
      <div class="col-md-6">.col-md-6</div>
      <div class="col-md-6">.col-md-6</div>
    </div>

    7.4 不同屏幕设置不同宽度

    <div class="row">
      <div class="col-xs-12 col-sm-6 col-md-8">.col-xs-12 .col-sm-6 .col-md-8</div>
      <div class="col-xs-6 col-md-4">.col-xs-6 .col-md-4</div>
    </div>
    <div class="row">
      <div class="col-xs-6 col-sm-4">.col-xs-6 .col-sm-4</div>
      <div class="col-xs-6 col-sm-4">.col-xs-6 .col-sm-4</div>
      <!-- Optional: clear the XS cols if their content doesn't match in height -->
      <div class="clearfix visible-xs-block"></div>
      <div class="col-xs-6 col-sm-4">.col-xs-6 .col-sm-4</div>
    </div>

    7.5 列偏移

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

    <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>

    还可以使用.col-*-offset-0类覆盖较低网格层的偏移,如下sm覆盖了xs,单位不一致时也会产生偏移

    <div class="row">
            <div class="col-xs-6 col-sm-4 c1">
            </div>
            <div class="col-xs-6 col-sm-4 c2">
            </div>
            <div class="col-xs-6 col-xs-offset-3 col-sm-4 col-sm-offset-0 c3">
            </div>
        </div>

    7.6 列位置移动

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

    <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>

    八、Bootstrap全局样式

    排版、按钮、表格、表单、图片等我们常用的HTML元素,Bootstrap中都提供了全局样式。

    我们只要在基本的HTML元素上通过设置class就能够应用上Bootstrap的样式,从而使我们的页面更美观和谐

    8.1 标题相关

    <h1>一级标题36px</h1>
    <h2>二级标题30px</h2>
    <h3>三级标题24px</h3>
    <h4>四级标题18px</h4>
    <h5>五级标题14px</h5>
    <h6>六级标题12px</h6>
    <!--除了使用h标签,Bootstrap内置了相应的全局样式-->
    <!--内联标签应用标题样式-->
    <span class="h1">一级标题36px</span>
    <span class="h2">二级标题30px</span>
    <span class="h3">三级标题24px</span>
    <span class="h4">四级标题18px</span>
    <span class="h5">五级标题14px</span>
    <span class="h6">六级标题12px</span>
    <!--一级标题中嵌入小标题-->
    <h1>一级标题<small>小标题</small></h1>

    8.2 文本对齐

    <!--文本对齐-->
    <p class="text-left">文本左对齐</p>
    <p class="text-center">文本居中</p>
    <p class="text-right">文本右对齐</p>

    8.3 文本大小写

    <!--大小写-->
    <p class="text-lowercase">Lowercased text.</p>
    <p class="text-uppercase">Uppercased text.</p>
    <p class="text-capitalize">Capitalized text.</p>

    8.4 表格

    Class 描述
    .table-striped 条纹状表格
    .table-bordered 带边框的表格
    .table-hover 鼠标悬停变色的表格
    .table-condensed 紧缩型表格
    .table-responsive 响应式表格

     

    8.5 状态类

    Class描述
    .active 鼠标悬停在行或单元格上时所设置的颜色
    .success 标识成功或积极的动作
    .info 标识普通的提示信息或动作
    .warning 标识警告或需要用户注意
    .danger 标识危险或潜在的带来负面影响的动作

    8.6 按钮

    <a class="btn btn-default" href="#" role="button">Link</a>
    <button class="btn btn-default" type="submit">Button</button>
    <input class="btn btn-default" type="button" value="Input">
    <input class="btn btn-default" type="submit" value="Submit">

    按钮样式:

    <!-- Standard button -->
    <button type="button" class="btn btn-default">(默认样式)Default</button>
    <!-- Provides extra visual weight and identifies the primary action in a set of buttons -->
    <button type="button" class="btn btn-primary">(首选项)Primary</button>
    <!-- Indicates a successful or positive action -->
    <button type="button" class="btn btn-success">(成功)Success</button>
    <!-- Contextual button for informational alert messages -->
    <button type="button" class="btn btn-info">(一般信息)Info</button>
    <!-- Indicates caution should be taken with this action -->
    <button type="button" class="btn btn-warning">(警告)Warning</button>
    <!-- Indicates a dangerous or potentially negative action -->
    <button type="button" class="btn btn-danger">(危险)Danger</button>
    <!-- Deemphasize a button by making it look like a link while maintaining button behavior -->
    <button type="button" class="btn btn-link">(链接)Link</button>

    按钮大小

    <p>
      <button type="button" class="btn btn-primary btn-lg">(大按钮)Large button</button>
      <button type="button" class="btn btn-default btn-lg">(大按钮)Large button</button>
    </p>
    <p>
      <button type="button" class="btn btn-primary">(默认尺寸)Default button</button>
      <button type="button" class="btn btn-default">(默认尺寸)Default button</button>
    </p>
    <p>
      <button type="button" class="btn btn-primary btn-sm">(小按钮)Small button</button>
      <button type="button" class="btn btn-default btn-sm">(小按钮)Small button</button>
    </p>
    <p>
      <button type="button" class="btn btn-primary btn-xs">(超小尺寸)Extra small button</button>
      <button type="button" class="btn btn-default btn-xs">(超小尺寸)Extra small button</button>
    </p>

    8.7 图片

    <img src="..." class="img-responsive" alt="Responsive image">

    图片形状:

    <img src="..." alt="..." class="img-rounded">
    <img src="..." alt="..." class="img-circle">
    <img src="..." alt="..." class="img-thumbnail">

    8.8 辅助类

    文本颜色:

    <p> class="text-muted">...</p>
    <p class="text-primary">...</p>
    <p class="text-success">...</p>
    <p class="text-info">...</p>
    <p class="text-warning">...</p>
    <p class="text-danger">...</p>

    背景颜色

    <p class="bg-primary">...</p>
    <p class="bg-success">...</p>
    <p class="bg-info">...</p>
    <p class="bg-warning">...</p>
    <p class="bg-danger">...</p>

    关闭按钮:

    <button type="button" class="close" aria-label="Close"><span aria-hidden="true">×</span></button>

    下拉三角:

    <span class="caret"></span>

    快速浮动:

    <div class="pull-left">...</div>
    <div class="pull-right">...</div>

    清除浮动:

    <div class="clearfix">...</div>

    内容块居中

    <div class="center-block">...</div>

    显示与隐藏:

    <div class="show">...</div>
    <div class="hidden">...</div>

    九、JavaScript插件

    9.1 模态框

    注意:需要将模态框的HTML代码放在文档的最高层级内(也就是说,尽量作为 body 标签的直接子元素),以避免其他组件影响模态框的展现和/或功能。

    <button type="button" class="btn btn-primary btn-lg" data-toggle="modal" data-target="#myModal">
      点击打开模态框
    </button>
     
    <!-- 模态框 -->
    <div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel">
      <div class="modal-dialog" role="document">
        <div class="modal-content">
          <div class="modal-header">
            <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button>
            <h4 class="modal-title" id="myModalLabel">模态框标题</h4>
          </div>
          <div class="modal-body">
            模态框内容
          </div>
          <div class="modal-footer">
            <button type="button" class="btn btn-default" data-dismiss="modal">关闭</button>
            <button type="button" class="btn btn-primary">确定</button>
          </div>
        </div>
      </div>
    </div>

     模态框设置类属性:

    • 通过为模态框设置 .bs-example-modal-lg和 .bs-example-modal-sm来控制模态框的大小。

    • 通过 .fade类来控制模态框弹出时的动画效果(淡入淡出效果)。

    • 通过在 .modal-bodydiv中设置 .row可以使用Bootstrap的栅格系统。

    调用方式:

    1.通过data属性

    通过在一个触发弹出模态框的元素(例如:按钮)上添加 data-toggle="modal"属性,然后设置 data-target="#foo"属性或 href="#foo"属性,用来指向被控制的模态框。

    <button type="button" data-toggle="modal" data-target="#myModal">显示模态框</button>

    2.通过JS代码调用

    $('#myModal').modal("show");  // 显示
    $('#myModal').modal("hide")   // 隐藏

    3.常用参数:

    名称可选值默认值描述
    backdrop true/false/'static' true false表示有没有遮罩层,'static'表示点击遮罩层不关闭模态框
    keyboard true/false true 键盘上的 esc 键被按下时关闭模态框。
    show true/false true 模态框初始化之后就立即显示出来。

    4.方法:

    $('#myModal').modal({
      keyboard: false
    })

    9.2 轮播图

    <div id="carousel-example-generic" class="carousel slide" data-ride="carousel">
      <!-- Indicators -->
      <ol class="carousel-indicators">
        <li data-target="#carousel-example-generic" data-slide-to="0" class="active"></li>
        <li data-target="#carousel-example-generic" data-slide-to="1"></li>
        <li data-target="#carousel-example-generic" data-slide-to="2"></li>
      </ol>
     
      <!-- Wrapper for slides -->
      <div class="carousel-inner" role="listbox">
        <div class="item active">
          <img src="..." alt="...">
          <div class="carousel-caption">
            <!--可以在这里写字,显示在图片上-->
          </div>
        </div>
        <div class="item">
          <img src="..." alt="...">
          <div class="carousel-caption">
            <!--可以在这里写字,显示在图片上-->
          </div>
        </div>
        ...
      </div>
     
      <!-- Controls -->
      <a class="left carousel-control" href="#carousel-example-generic" role="button" data-slide="prev">
        <span class="glyphicon glyphicon-chevron-left" aria-hidden="true"></span>
        <span class="sr-only">Previous</span>
      </a>
      <a class="right carousel-control" href="#carousel-example-generic" role="button" data-slide="next">
        <span class="glyphicon glyphicon-chevron-right" aria-hidden="true"></span>
        <span class="sr-only">Next</span>
      </a>
    </div><br>
  • 相关阅读:
    python数字图像处理(13):基本形态学滤波
    python数字图像处理(12):基本图形的绘制
    python数字图像处理(11):图像自动阈值分割
    python数字图像处理(10):图像简单滤波
    python数字图像处理(9):直方图与均衡化
    python数字图像处理(8):对比度与亮度调整
    python数字图像处理(7):图像的形变与缩放
    android --- api json数据
    android -------- Hawk数据库
    android -------- 沉浸式状态栏和沉浸式导航栏(ImmersionBar)
  • 原文地址:https://www.cnblogs.com/yj0405/p/14745966.html
Copyright © 2011-2022 走看看