zoukankan      html  css  js  c++  java
  • bootstrap

    Twitter Bootstrap是一个HTML/CSS/JS框架,适用于移动设备优先的响应式网页。

    V2:面向PC进行了样式设定,同时兼顾PAD和PHONE

    V3:面向Phone进行样式设定,同时兼顾了PC

    主要涉及:

      (1)HTML:为H5已有的标签扩展了一些自定义属性   data-*

      (2)CSS: CSS Reset  + 几千个class

      (3)JS:基于jQuery提供了十几个插件函数

    内容分为五部分:

      (1)起步:下载、模板、Bootlint、示例、禁用响应式、

      (2)全局CSS样式

      (3)组件

      (4)插件

      (5)定制

    <div id="" class="" style="" title="" data-old-width="500">

    1.复习:使用Bootstrap页面模板

    2.Bootstrap提供的CSS Reset

      * { box-sizing: border-box; }

      body { font ...; color: #333; background: ...; margin: 0;}

      h1 { font-size: ;  margin-top: 20px;  margin-bottom: 10px;}

      h2 { font-size: ;  margin-top: 20px;  margin-bottom: 10px;}

      h3 { font-size: ;  margin-top: 20px;  margin-bottom: 10px;}

      h4  { font-size: ;  margin-top: 10px;  margin-bottom: 10px;}

      h5  { font-size: ;  margin-top: 10px;  margin-bottom: 10px;}

      h6  { font-size: ;  margin-top: 10px;  margin-bottom: 10px;}

      a { color:;  text-decoration: ;}

      img { border: 0;  vertical-align: middle; }

      p { margin-bottom:10px; }

      ......

    CSS补充知识点:
    盒子模型的计算方法 box-sizing
    div {
    box-sizing: content-box; /*默认值*/
    box-sizing: border-box; /*推荐使用*/
    }
    content-box: 一个盒子的总宽度=margin+border+padding+width
    border-box: 一个盒子的总宽度=margin+width

    2.Bootstrap全局CSS样式——按钮——简单&有趣

      .btn { padding:;  border: ;}

      .btn-default { color:;  background:;  border-color:;}

    ----------------------

      .btn-danger

      .btn-success

      .btn-warning

      .btn-info

      .btn-primary

    ---------------------

      .btn-lg

      .btn-sm

      .btn-xs

    ----------------------

      .btn-block

    ----------------------

      .pull-left { float: left; }

      .pull-right { float: right; }

     

     

    3.Bootstrap全局CSS样式——图片——简单&有趣

      .img-rounded

      .img-circle

      .img-thumbnail 缩略图片/拇指图片

      .img-responsive  响应式图片

     

     

    4.Bootstrap全局CSS样式——排版和代码——仅作了解

     .text-danger

     .text-success

     .text.warning

     .text-info

     .text-primary

     .bg-danger

     .bg-success

     .bg-warning

     .bg-info

     .bg-primary

     .text-left

     .text-right

     .text-center

     .text-justify  文本两端调整对齐

     .text-uppercase  

     .text-lowercase

     .text-capitalize  

     .list-unstyled

     .list-inline    

     

    Bootlint工具:

    是一个js,由Bootstrap官方提供,用于检测使用Bootstrap的页面中常见的HTML错误、class使用方面的错误——默认情况下浏览器是检查不出来的。

    6.Bootstrap全局CSS样式——表格——简单&有趣

      .table

      .table-bordered 带边框的表格

      .table-responsive 响应式表格  注意:使用在table的父元素上,而不是table上

      .table-striped 隔行变色的表格

      .table-hover 带悬停效果的表格

     

    7.Bootstrap全局CSS样式——栅格布局系统——最重点&稍难

     Web开发中页面布局可以采用的方式:

     (1)使用TABLE做布局

    优势:简单不易出错  不足:加载效率

     (2)使用DIV+CSS做布局

    优势:加载速度快、灵活  不足:不易控制

     (3)使用Bootstrap提供的栅格(Grid Layout)布局系统

    优势:加载速度快、灵活、支持响应式功能、容易控制(有行/列的概念,但使用DIV+CSS实现)

    栅格布局系统的特点:

     (1)所有的行必须放在容器中: .container或.container-fluid

     (2)分为多行(row),一行中平均分为12列(col)

     (3)网页内容只能放在列(col)中,不能直接放在行(row)

     (4)可以在col中再嵌套row

     (5)col分为四大类: col-xs   col-sm    col-md   col-lg

     (6)col-md-*  *值可为1~12,值就为某个列的宽度(  */12  )

     (7)可以为一个列指定不同屏幕下的不同宽度

     (8) col-lg-*  只对大PC屏幕有效

        col-md-*   对普通PC和大PC屏幕都有效

        col-sm-*   对平板、PC、大PC屏幕都有效

        col-xs-*   对手机、平板、PC大PC屏幕都有效

     (9) .hidden-lg    当前列只在大PC屏幕下隐藏

    .hidden-md 当前列只在PC屏幕下隐藏

    .hidden-sm 当前列只在平板屏幕下隐藏

    .hidden-xs 当前列只在手机屏幕下隐藏

     (10) .col-md-offset-1~12——自学

     

     练习:使用栅格系统创建“响应式网页示例”

     

    .container的宽度问题:
    当屏幕宽度>1200px(超大PC显示器-lg): 容器宽1170px
    当屏幕宽度>992px(普通PC显示器-md): 容器宽970px
    当屏幕宽度>768px(平板显示器-sm): 容器宽750px
    当屏幕宽度<768px(手机显示器-xs): 容器宽auto
    .container-fluid的宽度: auto; + before + after
    面试题:Bootstrap布局系统中容器的特点?
    (1)宽度做了媒体查询。
    (2)添加了前置和后置内容生成,可以防止子元素的越界、浮动造成的影响。

    8.补充:CSS相关知识

      (1)如何解决父元素的第一个子元素的margin-top越界问题

    1)为父元素加border-top: 1px;——有副作用

    2)为父元素指定padding-top: 1px;——有副作用

    3)为父元素指定overflow:hidden;——有副作用

    4)为父元素添加前置内容生成——推荐使用

    .parent:before {

    content: '  ';

    display: table;

    }

      (2)如何解决所有的子元素浮动后父元素高度变为0,且影响后续元素

    1)为父元素指定overflow:hidden;——有副作用

    2)为父元素指定高度:height: xxx;——有局限性

    3)为父元素添加后置内容生成——推荐使用

    .parent:after {

    content: '  ';

    display: table;

    clear: both;

    }

     

    1.全局CSS样式——栅格布局系统

      补充:列的偏移问题(offset)

    .col-xs-offset-1~.col-xs-offset-12 lg/md/sm/xs屏幕下偏移

    .col-sm-offset-1~.col-sm-offset-12 lg/md/sm屏幕下偏移

    .col-md-offset-1~.col-md-offset-12 lg/md屏幕下偏移

    .col-lg-offset-1~.col-lg-offset-12 lg屏幕下偏移

    2.全局CSS样式——表单——次重点&难点

      Bootstrap中的表单分为三种:

      (1)默认表单

    <form>

    <div class="form-group">

    <label class="control-label"></label>

    <input class="form-control">

    <span class="help-block"></span>

    </div>

    </form> 

    (2)行内表单

     

    <form class="form-inline">

    </form> 

    (3)水平表单

     

    <form class="form-horizontal">

    使用栅格系统来控制label/input/help-block的宽度

    </form>

    1.组件——图标字体——愉快&简单

      Glyphicons是一套收费的图标字体,提供了Web/移动开发中常用的小图标

      Bootstrap中可以免费使用这套字体中的250+个;以服务器端字体形式出现的,即客户端若访问了使用Glyphicons字体的网站,会自动从服务器端下载对应的字体文件。

    @font-face {

      font-family: 'Glyphicons Halflings';

      src: url('../fonts/glyphicons-halflings-regular.eot');

    }

    .glyphicon {

      position: relative;

      top: 1px;

      display: inline-block;

      font-family: 'Glyphicons Halflings';

      font-style: normal;

      font-weight: normal;

      line-height: 1;

    }

    提示:(1)图标字体的本质不是图片,而是字体;故凡是可以使用文字的地方都可以使用不同字体

    (2)glyphicon图标字体只能用于“空元素”——不包含任何内容或子元素!如:<span class="glyphicon glyphicon-***"></span>  

     

     

    2.组件——按钮组——简单

      .btn-group    水平按钮组

      .btn-group-vertical 竖直按钮组

      .btn-group.btn-group-justified 水平且两端对齐的按钮组

      .btn-group-lg

      .btn-group-sm

      .btn-group-xs

     

     

    3.组件——下拉菜单——小重点&简单

      下拉菜单必须HTML结构:

      <div class="dropdown"> 相对定位的父元素

    <a data-toggle="dropdown">触发元素</a>

    <ul/div class="dropdown-menu"> 绝对定位

    隐藏元素

    </ul/div>    

      </div>

     

     

    4.组件——导航——小重点&简单

     提示:此处的导航不是指导航条!

     Bootstrap提供了两种形式的导航:

      (1)标签页式导航

    <ul class="nav nav-tabs">

    </ul>

      (2)胶囊式导航

    <ul class="nav nav-pills">

    </ul>

     

       此外,还有两种导航变种:

       (1)两端对齐的导航    .nav.nav-tabs/pills.nav-justified

       (2)竖直放置的胶囊导航   .nav.nav-pills.nav-stacked

    7.组件——自学:路径导航(面包屑)/分页/标签/徽章/巨幕/水井/页头

      面包屑:  .breadcrumb

     

      分页:    .pagination        .pager

     

     

      标签:   .label

     

      徽章: .badge

     

      巨幕:   .jumbotron

     

      水井:   .well

     

      页头:  .page-header

     

    8.组件——响应式导航条——重点&难点

    响应式导航条:在PC和平板中默认要显示所有的内容;但在手机中导航条中默认只显示“LOGO/Brand”,以及一个“菜单折叠展开按钮”,只有单击折叠按钮后才显示所有的菜单项。

      基础class: .navbar   

      Bootstrap中导航条的按位置:

    1)顶部导航条

    2)底部导航条

      Bootstrap中导航条的按颜色:

    1)浅色底深色的字 .navbar-default

    2)深色底浅色的字 .navbar-inverse

      Bootstrap中导航条的按定位:

    1)相对定位position: relative 默认值

    2)固定定位position: fixed      .navbar-fixed-top/bottom

     

      导航条的结构:

      <div class="navbar 颜色 定位">  

    <div class="container">

    <!--导航条的头部:商标+按钮-->

    <div class="navbar-header">

    <a class="navbar-brand">

    <button class="navbar-toggle">

    </div>

    <!--导航条折叠菜单:菜单、按钮、搜索框、链接、文本...-->

    <div class="navbar-collapse">

    <ul class="nav navbar-nav">

    <form class="navbar-form">

    <button class="navbar-btn">

    <span class="navbar-text">

    <a class="navbar-link navbar-text">

    </div>

    </div>

      </div>

     

    行业小知识:

    盲人、智力低下、行动障碍...

    H5标签中有两类属性与“无障碍阅读”相关:

     (1)<ANY  role="">       <b role="button"></b>       VDA

     (2)<ANY  aria-*="">

    1.插件——概述

      Bootstrap基于jQuery提供了十几个插件函数(类似于jQueryUI插件库),每个插件对应一个.js文件,可以单独引用,也可以整体引用(bootstrap.js)。

      调用上述十几个插件可以用两种格式:

      (1)传统的JS方式调用:  $(...).dropdown();   $().tab(...);

      (2)使用data-*扩展属性方式调用:  <a  data-toggle="dropdown">

     

     

    2.插件——下拉菜单

      (1)$().dropdown( );

      (2)<a data-toggle="dropdown">

     

     

    3.插件——标签页(tab)

      (1) $().tab();

      (2) <a data-toggle="tab">

     

     

     

    4.插件——Bootstrap提供的弹出框

      (1)工具提示框(tooltip)    data-toggle="tooltip"

      (2)弹出框(popover) data-toggle="popover"

      (3)警告框(alert) —— 小重点

    <div class="alert alert-四种颜色 alert-dismissible">

    <span class="close" data-dismiss="alert">×</span>

    xxxx

    </div>

      (4)模态对话框(modal) —— 小重点

    模态框定义:在父窗体中弹出一个子窗体,子窗体若不关闭,父窗体就无法获得焦点,同时父子窗体间还可以传递数据。window.alert()/confirm()/prompt()就是典型例子。模态框必需的结构:

    <div class="modal">    <!--半透明的黑色遮罩层-->

      <div class="modal-dialog"> <!--宽/定位-->

        <div class="modal-content"> <!--边框/背景色/阴影-->

          <div class="modal-header">头部</div>

          <div class="modal-body">主体</div>

          <div class="modal-footer">尾部</div>

        </div>

      </div>

    </div>

    显示一个模态框:

    1) <a href="#模态框ID" data-toggle="modal">

    2) <button data-toggle="modal" data-target="#模态框ID">

     

     

    5.插件——折叠效果(collapse)

      触发一个折叠效果:

    1) <a href="#折叠元素ID" data-toggle="collapse">

    2) <button data-toggle="collapse" data-target="#折叠元素ID">

      ------------------------------------------------------------------------------

      <div id="折叠元素ID" class="collapse in">

      </div>

     

      折叠组件的两个扩展用途:

      (1)Accordion(手风琴)

      (2)响应式导航条在手机屏幕中的效果

     

     

    6.插件——轮播广告(carousel)——小重点

      本身结构较复杂,编写时只需要记住根class:  .carousel

      <div class="carousel">

    <div class="carousel-inner">

    <div class="item active">

    <img>

    </div>

    </div>

      </div>

     

     

    7.插件——附加导航(Affix)

    <div data-spy="affix" data-offset-top="100">

    <ul class="nav nav-pills">

    </div>

     

     

    9.插件——滚动监听(scrollspy)——了解

      随着页面内容的滚动,某个导航中的项目,会自动的更改.active位置。

      实现思路:

    (1)页面中必须首先有一个导航菜单(.nav)——其中可以定义一个菜单项为.active

    (2)导航菜单中的超链接的href属性值必须和页面中的某个锚点名一样

    (3)为页面添加滚动事件的监听函数

    body.onscroll= function(){

    if(body滚动的距离 === 某个锚点距离顶端的距离){

    此锚点对应的超链接的父元素li添加.active;

    }

    }

     

     

    作业:

    (1)复习Bootstrap提供的所有class   

    栅格系统、导航条、表单、媒体对象、面板、表格

    (2)归纳整理插件函数调用时对应的data-*扩展属性有哪些

     

    1.Bootstrap阶段项目

      (1)day01:实现布局系统和内容

    am:完成栅格系统的设计

    pm:完成单元格中的内容

      (2)day02:样式定制

    am:less

    pm:修改Bootstrap源代码

     

     

    2.补充:栅格布局系统中列的偏移和排序

      列偏移(offset): 用途-在不满的一行中某个列及后续的列向右偏移

    col-xs/sm/md/lg-offset-*

    提示:某列偏移后,会影响后续的所有列。

     

      列排序(pull/push):用途-在一行中调整某列的位置,且不影响其他列

     

     

    .col-lg-push-* lg屏幕下将列向右推指定的宽度

    .col-lg-pull-* lg屏幕下将列向左拉指定的宽度

    .col-md-push-* md/lg屏幕下将列向右推指定的宽度

    .col-md-pull-* md/lg屏幕下将列向左拉指定的宽度

    .col-sm-push-* sm/md/lg屏幕下将列向右推指定的宽度

    .col-sm-pull-* sm/md/lg屏幕下将列向左拉指定的宽度

    .col-xs-push-* xs/sm/md/lg屏幕下将列向右推指定的宽度

    .col-xs-pull-* xssm/md/lg屏幕下将列向左拉指定的宽度

  • 相关阅读:
    js随机模块颜色
    可以随鼠标拖拽的div
    js动弹特效
    正则表达式-表单验证
    get你想象不到的技能
    文字列表滚动(文字轮播)
    jQuery
    jQuery中效果animate方法解决width是百分比出现的问题
    iscroll在谷歌浏览器中bug
    js倒计时 手机休眠时 时间不进行减少
  • 原文地址:https://www.cnblogs.com/skorzeny/p/6067892.html
Copyright © 2011-2022 走看看