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

    bootstrap

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

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

      它支持响应式布局,并且在V3版本之后坚持移动设备优先。
    优点:各种命名都统一并且规范化。 页面风格统一,画面和谐。

    下载bootstrap:https://www.bootcss.com/

    起步

    基本模板

    <!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">
        <!-- 上述3个meta标签*必须*放在最前面,任何其他内容都*必须*跟随其后! -->
        <title>Bootstrap 101 Template</title>
    
        <!-- Bootstrap -->
        <link href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css" rel="stylesheet">
    
        <!-- HTML5 shim 和 Respond.js 是为了让 IE8 支持 HTML5 元素和媒体查询(media queries)功能 -->
        <!-- 警告:通过 file:// 协议(就是直接将 html 页面拖拽到浏览器中)访问页面时 Respond.js 不起作用 -->
        <!--[if lt IE 9]>
          <script src="https://cdn.jsdelivr.net/npm/html5shiv@3.7.3/dist/html5shiv.min.js"></script>
          <script src="https://cdn.jsdelivr.net/npm/respond.js@1.4.2/dest/respond.min.js"></script>
        <![endif]-->
      </head>
      <body>
        <h1>你好,世界!</h1>
    
        <!-- jQuery (Bootstrap 的所有 JavaScript 插件都依赖 jQuery,所以必须放在前边) -->
        <script src="https://cdn.jsdelivr.net/npm/jquery@1.12.4/dist/jquery.min.js"></script>
        <!-- 加载 Bootstrap 的所有 JavaScript 插件。你也可以根据需要只加载单个插件。 -->
        <script src="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/js/bootstrap.min.js"></script>
      </body>
    </html>
    

    栅格系统

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

    原理:

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

    栅格参数

    手机(<768px) 平板(≥768px) 电脑(≥992px) 大屏膜(≥1200px)
    栅格系统行为 总是水平排列 大于阈值时--> 将换行,水平--> 排列
    container 最大宽度 自动 750px 970px 1170px
    类前缀 .col-xs- .col-sm- .col-md- .col-lg-
    列数 12 12 12 12
    最大列宽 自动 ~62px ~81px ~97px
    <div class="col-md-6"></div>		// 表示这个标签的内容占4栅格
    <div class="col-md-offset-3"></div>	// 表示这个标签距离左边3个栅格
    

    流式布局容器

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

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

    列偏移 col-md-offset-x

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

    //居中
    col-md-offset-x
        <div class="container-fluid">
    <!--            <h1>xxxx</h1>-->
            <div class="row">
                <div class="col-md-6 col-md-offset-3 c1">		
            </div>
        </div>
    

    列嵌套

    为了使用内置的栅格系统将内容再次嵌套,可以通过添加一个新的 .row 元素和一系列 .col-sm-* 元素到已经存在的 .col-sm-* 元素内。被嵌套的行(row)所包含的列(column)的个数不能超过12(其实,没有要求你必须占满12列)。

        <div class="container-fluid">
    <!--            <h1>xxxx</h1>-->
            <div class="row">
                <div class="col-md-6 col-md-offset-3 c1">
                // 列中又分栅格
                    <div class="row">
                        <div class="col-sm-6 c1"></div>
                        <div class="col-sm-6 c2"></div>
                    </div>
                </div>
            </div>
        </div>
    

    CSS样式

    主标题

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

    文本对齐

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

    文本大小写

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

    辅助类

    文本颜色

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

    关闭按钮

    通过使用一个象征关闭的图标,可以让模态框和警告框消失。

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

    下拉三角

    通过使用三角符号可以指示某个元素具有下拉菜单的功能。注意,向上弹出式菜单中的三角符号是反方向的。

    快速浮动

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

    清除浮动

    通过为父元素添加 .clearfix 类可以很容易地清除浮动(float)。

    <!-- Usage as a class -->
    <div class="clearfix">...</div>
    

    显示与隐藏

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

    表格

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

    状态类

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

    背景色

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

    按钮

    可作为按钮使用的标签或元素

    <a><button><input> 元素添加按钮类(button class)即可使用 Bootstrap 提供的样式。

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

    按钮样式:

    btn btn-default :默认按钮背景的颜色,有primary、success...

    <button type="button" class="btn btn-default">(默认样式)Default</button>
    
    <button type="button" class="btn btn-primary">(首选项)Primary</button>
    
    <button type="button" class="btn btn-success">(成功)Success</button>
    
    <button type="button" class="btn btn-info">(一般信息)Info</button>
    
    <button type="button" class="btn btn-warning">(警告)Warning</button>
    
    <button type="button" class="btn btn-danger">(危险)Danger</button>
    
    <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>
    

    图片

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

    Bootstrap组件

    需要导入jQuery,以及引入js文件

    <script src="../../bootstrap-3.3.7-dist/js/bootstrap.min.js"></script>
    
    

    目录:

    1. 字体图标(fontawesome里面比较全
    2. 下拉菜单
    3. 按钮组
    4. 输入框俎
    5. 导航
    6. 分页
    7. 标签和徽章
    8. 页头
    9. 缩率图
    10. 进度条

    响应式开发

    为什么要进行响应式开发?

      随着移动设备的流行,网页设计必须要考虑到移动端的设计。同一个网站为了兼容PC端和移动端显示,就需要进行响应式开发。

    什么是响应式?

      利用媒体查询,让同一个网站兼容不同的终端(PC端、移动端)呈现不同的页面布局。

    用到的技术:

      CSS3@media查询

      用于查询设备是否符合某一特定条件,这些特定条件包括屏幕尺寸、是否可触摸、屏幕精度、横屏竖屏等信息。

    常见属性:

      1.device-width, device-height 屏幕宽、高

      2.width,height 渲染窗口宽、高

      3.orientation 设备方向

      4.resolution 设备分辨率

    语法:

    @media mediatype and|not|only (media feature) {
        CSS-Code;
    }
    
    

    不同的媒体使用不同的stylesheet:

    <link rel="stylesheet" media="mediatype and|not|only (media feature)" href="mystylesheet.css">
    
    

    viewport

      手机浏览器是把页面放在一个虚拟的"窗口"(viewport)中,通常这个虚拟的"窗口"(viewport)比屏幕宽,这样就不用把每个网页挤到很小的窗口中(这样会破坏没有针对手机浏览器优化的网页的布局),用户可以通过平移和缩放来看网页的不同部分。

    设置viewport

      一个常用的针对移动网页优化过的页面的 viewport meta 标签大致如下:

    <meta name=”viewport” content=”width=device-width, initial-scale=1, maximum-scale=1″>
    
    
    • width:控制 viewport 的大小,可以指定的一个值,如果 600,或者特殊的值,如 device-width 为设备的宽度(单位为缩放为 100% 时的 CSS 的像素)。
    • height:和 width 相对应,指定高度。
    • initial-scale:初始缩放比例,也即是当页面第一次 load 的时候缩放比例。
    • maximum-scale:允许用户缩放到的最大比例。
    • minimum-scale:允许用户缩放到的最小比例。
    • user-scalable:用户是否可以手动缩放。

    JavaScript插件

    模态框

    模态框的HTML代码放置的位置

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

    静态实例:

    <!-- 触发模态框的按钮 -->
    <button type="button" class="btn btn-primary btn-lg" data-toggle="modal" data-target="#myModal">
      Launch demo modal
    </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">&times;</span></button>
            <h4 class="modal-title" id="myModalLabel">Modal title</h4>
          </div>
          <div class="modal-body">
            ...
          </div>
          <div class="modal-footer">
            <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
            <button type="button" class="btn btn-primary">Save changes</button>
          </div>
        </div>
      </div>
    </div>
    
    

    注意:

    • 通过为模态框设置 .bs-example-modal-lg.bs-example-modal-sm来控制模态框的大小。
    • 通过 .fade类来控制模态框弹出时的动画效果(淡入淡出效果)。
    • 通过在 .modal-bodydiv中设置 .row可以使用Bootstrap的栅格系统。

    动态实例:

    点击下面的按钮即可通过 JavaScript 启动一个模态框。此模态框将从上到下、逐渐浮现到页面前。

    <!-- Button trigger modal -->
    <button type="button" class="btn btn-primary btn-lg" data-toggle="modal" data-target="#myModal">
      Launch demo modal
    </button>
    
    <!-- Modal -->
    <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">&times;</span></button>
            <h4 class="modal-title" id="myModalLabel">Modal title</h4>
          </div>
          <div class="modal-body">
            ...
          </div>
          <div class="modal-footer">
            <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
            <button type="button" class="btn btn-primary">Save changes</button>
          </div>
        </div>
      </div>
    </div>
    
    

    实例:

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

    可以在为图片添加介绍信息:

    <div class="item">
      <img src="..." alt="...">
      <div class="carousel-caption">
        <h3>...</h3>
        <p>...</p>
      </div>
    </div>
    
    

    方法:

    设置切换间隔为2秒,默认是5秒。

    在jQuery中加:

    $('.carousel').carousel({
      interval: 2000
    })
    
    
  • 相关阅读:
    android系统webview使用input实现选择文件并预览
    在列表中动态设置元素的id
    Vue使用Clipboard.JS在h5页面中复制内容
    Vue使用v-for显示列表时,数组里的item数据更新,视图中列表不同步更新的解决方法
    Vue子组件和根组件的关系
    Vue生命周期和钩子函数及使用keeplive缓存页面不重新加载
    Python与数据结构[3] -> 树/Tree[0] -> 二叉树及遍历二叉树的 Python 实现
    Python与数据结构[2] -> 队列/Queue[0] -> 数组队列的 Python 实现
    Python与数据结构[1] -> 栈/Stack[1] -> 中缀表达式与后缀表达式的转换和计算
    Python与数据结构[1] -> 栈/Stack[0] -> 链表栈与数组栈的 Python 实现
  • 原文地址:https://www.cnblogs.com/yzm1017/p/11563891.html
Copyright © 2011-2022 走看看