• 前端知识之 bootstrap


    前端知识之 bootstrap

    01. bootstrap的介绍和下载

    01.1 介绍

    Bootstrap是Twitter推出的一个用于前端开发的开源工具包。它由Twitter的设计师Mark Otto和Jacob Thornton合作开发,是一个CSS/HTML框架。目前,Bootstrap最新版本为4.4。 注意,Bootstrap有三个大版本分别是 v2、v3和v4,我们这里学习最常用的v3。

     

    使用Bootstrap的好处:

    Bootstrap简单灵活,可用于架构流行的用户界面,具有 友好的学习曲线,卓越的兼容性,响应式设计,12列栅格系统,样式向导文档,自定义JQuery插件,完整的类库,基于Less等特性。

     

    01.2 下载

    bootstap英文官方: https://getbootstrap.com/

    bootstrap中文官网:http://www.bootcss.com/

    下载地址: http://v3.bootcss.com/getting-started/#download

    注意: Bootstrap提供了三种不同的方式供我们下载,我们不需要使用Bootstrap的源码 和 sass项目,只需要下载生产环境的Bootstrap即可。

     

    下载完成以后的目录如下:

    bootstrap/dist/
       ├── css/
       │   ├── bootstrap.css               # Bootstrap 核心css文件[未压缩,建议在开发阶段使用]
       │   ├── bootstrap.min.css           # Bootstrap 核心css文件[压缩版,建议在生产阶段使用]
       │   ├── bootstrap-theme.css         # Bootstrap 附带的主题样式,用不上可以删掉
       │   └── bootstrap-theme.min.css     # Bootstrap 附带的主题样式,用不上可以删掉
       ├── js/
       │   ├── bootstrap.js                # Bootstrap 核心js文件[未压缩,建议在开发阶段使用]
       │   └── bootstrap.min.js            # Bootstrap 核心js文件[压缩版,建议在生产阶段使用]
       └── fonts/                          # fonts目录中主要存放的是图标字体,附带主题使用的

    扩展

    我们也可以使用Bootstrap中文网提供的免费CDN加速服务:

    <!-- Bootstrap核心css文件 -->
    <link href="//cdn.bootcss.com/bootstrap/3.3.5/css/bootstrap.min.css" rel="stylesheet">
    <!-- jQuery。务必在引入Bootstrap之前引入 -->
    <script src="//cdn.bootcss.com/jquery/1.11.3/jquery.min.js"></script>
    <!-- Bootstrap核心js 文件 -->
    <script src="//cdn.bootcss.com/bootstrap/3.3.5/js/bootstrap.min.js"></script>

    01.3 bootstrap的引入和使用

    <!DOCTYPE html>
    <html lang="en">
        <head>
            <meta charset="utf-8">
            <title>Bootstrap Template</title>
            <link href="css/bootstrap.min.css" rel="stylesheet">
            <script src="js/jquery/1.11.3/jquery.min.js"></script>
            <script src="js/bootstrap.min.js"></script>
        </head>
        <body>
            <h1>你好,bootstrap!</h1>
        </body>
    </html>

    01.3.1 viewport

    viewport,中文翻译可以叫做"视口"或"视区",大家都知道移动设备的屏幕一般都比PC小很多,webkit浏览器会将一个较大的“虚拟”窗口映射到移动设备的屏幕上,默认的虚拟窗口为980像素宽(目前大部分网站的标准宽度),然后按一定的比例(3:1或2:1)进行缩放。也就是说当我们加载一个普通网页的时候,webkit会先以980像素的浏览器标准加载网页,然后再缩小为490像素的宽度。注意这个缩小是一个全局缩小,也就是页面上的所有元素都会缩小。他有以下几个属性

    width                  控制 viewport 的大小,一般为了自适应设置为device-width
    height                 一般为了自适应设置为device-height
    target-densitydpi      设备的默认缩放比例。可以设置如下:
               low-dpi     使用ldpi作为目标 dpi。中等像素密度和高像素密度设备相应放大
               medium-dpi  使用mdpi作为目标 dpi。 高像素密度设备相应放大, 像素密度设备相应缩小。 这是默认的target density.
               device-dpi  使用设备原本的 dpi 作为目标 dp。 不会发生默认缩放。
               high-dpi    使用hdpi 作为目标 dpi。 中等像素密度和低像素密度设备相应缩小
    initial-scale          初始缩放,如果设置初始缩放为"1.0",那么web页面在展现的时候就会以target density分辨率的1:1来展现
    maximum-scale          最大缩放。即允许的最大缩放程度。这也是一个浮点值,用以指出页面大小与屏幕大小相比的最大乘数。
    user-scalable          是否允许调整缩放。即用户是否能对页面进行缩放。如果设置为yes则允许用户对页面进行缩放,反之为no。
    常见viewport设置:
    
    <meta name="viewport"
    content="width=device-width,target-densitydpi=high-dpi,initial-scale=1.0,
    minimum-scale=1.0, maximum-scale=1.0, user-scalable=no"/>

    02. 栅格系统的原理和使用

    02.1响应式设计

    响应式设计是Ethan Marcotte在2010年5月份提出的一个概念,就是一个网站能够兼容多个终端——而不是为每个终端做一个特定的版本。这个概念是为解决移动设备浏览网页而诞生的。

    优点:
    
    面对不同分辨率设备灵活性强
    
    能够快捷解决多设备显示适应问题
    
    缺点:
    
    兼容各种设备工作量大,效率低下
    
    代码累赘,会出现隐藏无用的元素,加载时间加长
    
    一定程度上改变了网站原有的布局结构,会出现用户混淆的情况

    02.2 栅格系统[Grid System ]的介绍

    Bootstrap提供了一套响应式、移动设备优先的流式栅格系统,随着屏幕或视口(viewport)尺寸的增加,系统会自动分为最多12列。栅格系统提供的class样式类会自动在屏幕宽度大于或等于阈值的设备上起作用,并且将针对小屏幕设备所设置的class覆盖掉。

    02.3 栅格系统[Grid System ]的使用

    .container             类用于固定宽度并支持响应式布局的容器。
    .container-fluid       类用于 100% 宽度,会自动占据全部视口(viewport)的容器。

    03. bootstrap的全局样式

    03.1 排版样式

    标题

    HTML 中的所有标题标签,<h1><h6> 均可使用。另外,还提供了 .h1 到 .h6 类,为的是给内联(inline)属性的文本赋予标题的样式。在标题内还可以包含 <small> 标签或赋予 .small 类的元素,可以用来标记副标题。

    页面主体

    Bootstrap 将全局 font-size 设置为14pxline-height 设置为 1.428。这些属性直接赋予 <body> 元素和所有段落元素。另外,<p>(段落)元素还被设置了等于 1/2 行高(即10px)的底部外边距(margin

    文本对齐
    <p class="text-left">Left aligned text.</p>
    <p class="text-center">Center aligned text.</p>
    <p class="text-right">Right aligned text.</p>
    列表
    a. 内联列表。通过设置 display: inline-block; 并添加少量的内补(padding),将所有元素放置于同一行。
         <ul class="list-inline"></ul>
    b. 水平排列的描述,
         <dl class="dl-horizontal"></dl >

    情境背景色

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

    03.2 表格样式

    03.2.1 table

    普通表格
    
    <table class="table"></table>
    条纹状表格
    
    <table class="table table-striped"></table>
    带边框的表格
    
    <table class="table table-bordered"></table>
    鼠标悬停
    
    <table class="table table-hover"></table>
    响应式表格,其会在小屏幕设备上(小于768px)水平滚动。当屏幕大于 768px 宽度时,水平滚动条消失
    
    <div class="table-responsive">
      <table class="table"></table>
    </div>

    03.2.2 tr

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

    03.3 表单样式

    所有设置了.form-control 类的<input><textarea><select> 元素都将被默认设置宽度属性为 100%;。 将 label 元素和前面提到的控件包裹在.form-group 中可以获得最好的排列。

    <input type="text" class="form-control" placeholder="Text input">
    <textarea class="form-control" rows="3"></textarea>
    <select class="form-control">
      <option>1</option>
      <option>2</option>
      <option>3</option>
      <option>4</option>
      <option>5</option>
    </select>

    03.4 按钮样式

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

    . 使用 .btn-lg.btn-sm.btn-xs 就可以获得不同尺寸的按钮

    <button type="button" class="btn btn-primary btn-lg">(大按钮)Large button</button>
    <button type="button" class="btn btn-default btn-lg">(大按钮)Large button</button><button type="button" class="btn btn-primary">(默认尺寸)Default button</button>
    <button type="button" class="btn btn-default">(默认尺寸)Default button</button><button type="button" class="btn btn-primary btn-sm">(小按钮)Small button</button>
    <button type="button" class="btn btn-default btn-sm">(小按钮)Small button</button><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>

    04. 组件

    字体图标

    Glyphicons 字体图标,包括250多个来自 Glyphicon Halflings 的字体图标。使用时只需要找到对应图标下的class样式即可。

    <span class="glyphicon glyphicon-apple" aria-hidden="true"></span>

    下拉菜单

    <div class="dropdown">
      <button class="btn btn-default dropdown-toggle" type="button" id="dropdownMenu1" data-toggle="dropdown" aria-haspopup="true" aria-expanded="true">
        Dropdown <span class="caret"></span>
      </button>
      <ul class="dropdown-menu" aria-labelledby="dropdownMenu4">
        <li><a href="#">Regular link</a></li>
        <li class="disabled"><a href="#">Disabled link</a></li>
        <li role="separator" class="divider"></li>
        <li><a href="#">Another link</a></li>
      </ul>
    </div>

    按钮组

    通过按钮组容器把一组按钮放在同一行里。通过与按钮插件联合使用,可以设置为单选框或多选框的样式和行为。

    <div class="btn-group" role="group" aria-label="...">
      <button type="button" class="btn btn-default">Left</button>
      <button type="button" class="btn btn-default">Middle</button>
      <button type="button" class="btn btn-default">Right</button>
    </div>

    导航

    Bootstrap 中的导航组件都依赖同一个 .nav类,状态类也是共用的。改变修饰类就可以改变样式

    <nav class="navbar navbar-inverse">
        <div class="container-fluid">
          <div class="navbar-header">
            <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1" aria-expanded="false">
                <span class="sr-only">Toggle navigation</span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
            </button>
            <a class="navbar-brand" href="#">QiYuan</a>
          </div>
          <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
             <ul class="nav navbar-nav">
                  <li class="active"><a href="#">Home<span class="sr-only">(current)</span></a></li>
                  <li><a href="#">Abouts</a></li>
                  <li class="dropdown">
                         <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Catetorys <span class="caret"></span></a>
                        <ul class="dropdown-menu">
                            <li><a href="#">Catetory 1</a></li>
                            <li role="separator" class="divider"></li>
                            <li><a href="#">Catetory 2</a></li>
                        </ul>
                   </li>
             </ul>
          </div><!-- /.navbar-collapse -->
       </div><!-- /.container-fluid -->
    </nav>

    分页

    <ul class="pagination">
      <li class="disabled"><a href="#" aria-label="Previous"><span aria-hidden="true">&laquo;</span></a></li>
      <li class="active"><a href="#">1<span class="sr-only">(current)</span></a></li>
      <li><a href="#">2 </a></li>
      <li><a href="#">3 </a></li>
      <li><a href="#" aria-label="Previous"><span aria-hidden="true">&raquo;</span></a></li>
    </ul>

    可关闭的警告框

    <div class="alert alert-warning alert-dismissible" role="alert">
      <button type="button" class="close" data-dismiss="alert" aria-label="Close">
        <span aria-hidden="true">&times;</span>
      </button>
      <strong>Warning!</strong> Better check yourself, you're not looking too good.
    </div> 

    进度条

    <div class="progress">
      <div class="progress-bar" role="progressbar" aria-valuenow="60" aria-valuemin="0" aria-valuemax="100" style=" 60%">60%</div>

    有动画效果的进度条

    <div class="progress">
      <div class="progress-bar progress-bar-warning progress-bar-striped active" role="progressbar" aria-valuenow="45" aria-valuemin="0" aria-valuemax="100" style=" 45%">
        45%
      </div>
    </div>

    模态框

    <!-- Large modal -->
    <button type="button" class="btn btn-primary" data-toggle="modal" data-target=".bs-example-modal-lg">Large modal</button>
    <div class="modal fade bs-example-modal-lg" tabindex="-1" role="dialog" aria-labelledby="myLargeModalLabel">
      <div class="modal-dialog modal-lg">
        <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="myLargeModalLabel">Large modal</h4>
          </div>
          <div class="modal-body">
            hello, welcome to QiYuan!
          </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><!-- Small modal -->
    <button type="button" class="btn btn-primary" data-toggle="modal" data-target=".bs-example-modal-sm">Small modal</button><div class="modal fade bs-example-modal-sm" tabindex="-1" role="dialog" aria-labelledby="mySmallModalLabel">
      <div class="modal-dialog modal-sm">
        <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="myLargeModalLabel">Large modal</h4>
          </div>
          <div class="modal-body">
            hello, welcome to QiYuan!
          </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>
      <!-- Nav tabs -->
      <ul class="nav nav-tabs" role="tablist">
        <li role="presentation" class="active"><a href="#home" aria-controls="home" role="tab" data-toggle="tab">Home</a></li>
        <li role="presentation"><a href="#profile" aria-controls="profile" role="tab" data-toggle="tab">Profile</a></li>
        <li role="presentation"><a href="#messages" aria-controls="messages" role="tab" data-toggle="tab">Messages</a></li>
        <li role="presentation"><a href="#settings" aria-controls="settings" role="tab" data-toggle="tab">Settings</a></li>
      </ul>
      <!-- Tab panes -->
      <div class="tab-content">
        <div role="tabpanel" class="tab-pane active" id="home">Home Content</div>
        <div role="tabpanel" class="tab-pane" id="profile">Profile Content</div>
        <div role="tabpanel" class="tab-pane" id="messages">Messages Content</div>
        <div role="tabpanel" class="tab-pane" id="settings">Settings Content</div>
      </div>
    </div>

    提示框

    <button type="button" class="btn btn-default" data-container="body" data-toggle="popover" data-placement="left" data-content="Vivamus sagittis lacus vel augue laoreet rutrum faucibus.">
      Popover on 左侧
    </button><button type="button" class="btn btn-default" data-container="body" data-toggle="popover" data-placement="top" data-content="Vivamus sagittis lacus vel augue laoreet rutrum faucibus.">
      Popover on 顶部
    </button><button type="button" class="btn btn-default" data-container="body" data-toggle="popover" data-placement="bottom" data-content="Vivamus
    sagittis lacus vel augue laoreet rutrum faucibus.">
      Popover on 底部
    </button><button type="button" class="btn btn-default" data-container="body" data-toggle="popover" data-placement="right" data-content="Vivamus sagittis lacus vel augue laoreet rutrum faucibus.">
      Popover on 右侧
    </button>
    <script type="text/javascript">
      $(function () {         // 提示框必须要手动初始化
           $('[data-toggle="popover"]').popover()
      })
    </script>

    警告框

    <div class="alert alert-warning alert-dismissible fade in" role="alert">
        <button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">×</span></button>
        <strong>Holy guacamole!</strong> Hello, Welcome QiYuan.
      </div>
      <div class="alert alert-danger alert-dismissible fade in" role="alert">
        <button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">×</span></button>
        <h4>Oh snap! You got an error!</h4>
        <p class="h1">404! error!</p>
        <p>
          <button type="button" class="btn btn-danger">Take this action</button>
          <button type="button" class="btn btn-default">Or do this</button>
        </p>
      </div>

    手风琴效果

    <div class="panel-group" id="accordion" role="tablist" aria-multiselectable="true">
      <div class="panel panel-default">
        <div class="panel-heading" role="tab" id="headingOne">
          <h4 class="panel-title">
            <a role="button" data-toggle="collapse" data-parent="#accordion" href="#collapseOne" aria-expanded="true" aria-controls="collapseOne">
              Collapsible Group Item #1
            </a>
          </h4>
        </div>
        <div id="collapseOne" class="panel-collapse collapse in" role="tabpanel" aria-labelledby="headingOne">
          <div class="panel-body">
            Collapsible Group Item #1 Content
          </div>
        </div>
      </div>
      <div class="panel panel-default">
        <div class="panel-heading" role="tab" id="headingTwo">
          <h4 class="panel-title">
            <a class="collapsed" role="button" data-toggle="collapse" data-parent="#accordion" href="#collapseTwo" aria-expanded="false" aria-controls="collapseTwo">
              Collapsible Group Item #2
            </a>
          </h4>
        </div>
        <div id="collapseTwo" class="panel-collapse collapse" role="tabpanel" aria-labelledby="headingTwo">
          <div class="panel-body">
            Collapsible Group Item #2 Content
          </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="holder.js/1386x400" width="100%" alt="...">
          <div class="carousel-caption">
            Img #1 Content
          </div>
        </div>
        <div class="item">
          <img src="holder.js/1386x400" width="100%" alt="...">
          <div class="carousel-caption">
            Img #2 Content
          </div>
        </div>
        <div class="item">
          <img src="holder.js/1386x400" width="100%" alt="...">
          <div class="carousel-caption">
            Img #3 Content
          </div>
        </div>
      </div>
    </div>
  • 相关阅读:
    【转载】高内聚低耦合
    【转载】locate命令的使用
    【转载】C内存对齐
    【原创】_INTSIZEOF 内存按照int对齐
    【转载】free查看内存
    Hive查询Join
    Hive数据查询
    Hive导入数据
    Hive表的修改Alter
    Hive中排序和聚集
  • 原文地址:https://www.cnblogs.com/oneone123/p/12033444.html
Copyright © 2020-2023  润新知