Bootstrap学习笔记

以Bootstrap3为例学习!
需要使用Bootstrap做一个响应式布局的页面,学习一下

什么是 Bootstrap?
Bootstrap 是一个用于快速开发 Web 应用程序和网站的前端框架。Bootstrap 是基于 HTML、CSS、JAVASCRIPT 的。

Bootstrap 的响应式 CSS 能够自适应于台式机、平板电脑和手机。更多有关响应式设计的内容详见 Bootstrap 响应式设计。

Bootstrap 包的内容
基本结构:Bootstrap 提供了一个带有网格系统、链接样式、背景的基本结构。这将在 Bootstrap 基本结构 部分详细讲解。
CSS:Bootstrap 自带以下特性:全局的 CSS 设置、定义基本的 HTML 元素样式、可扩展的 class,以及一个先进的网格系统。这将在 Bootstrap CSS 部分详细讲解。
组件:Bootstrap 包含了十几个可重用的组件,用于创建图像、下拉菜单、导航、警告框、弹出框等等。这将在 布局组件 部分详细讲解。
JavaScript 插件:Bootstrap 包含了十几个自定义的 jQuery 插件。您可以直接包含所有的插件,也可以逐个包含这些插件。这将在 Bootstrap 插件 部分详细讲解。
定制:您可以定制 Bootstrap 的组件、LESS 变量和 jQuery 插件来得到您自己的版本。

下载地址:http://getbootstrap.com/

一个使用了Bootstrap的html模板

<!DOCTYPE html>
<html>
   <head>
      <title>Bootstrap 模板</title>
      <meta name="viewport" content="width=device-width, initial-scale=1.0">
      <!-- 引入 Bootstrap -->
      <link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet">

      <!-- HTML5 Shiv 和 Respond.js 用于让 IE8 支持 HTML5元素和媒体查询 -->
      <!-- 注意: 如果通过 file://  引入 Respond.js 文件,则该文件无法起效果 -->
      <!--[if lt IE 9]>
         <script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
         <script src="https://oss.maxcdn.com/libs/respond.js/1.3.0/respond.min.js"></script>
      <![endif]-->
   </head>
   <body>
      <h1>Hello, world!</h1>

      <!-- jQuery (Bootstrap 的 JavaScript 插件需要引入 jQuery) -->
      <script src="https://code.jquery.com/jquery.js"></script>
      <!-- 包括所有已编译的插件 -->
      <script src="js/bootstrap.min.js"></script>
   </body>
</html>

移动设备优先是 Bootstrap 3 的最显著的变化。
为了让 Bootstrap 开发的网站对移动设备友好,确保适当的绘制和触屏缩放,需要在网页的 head 之中添加 viewport meta 标签,如下所示:
<meta name="viewport" content="width=device-width, initial-scale=1.0">
width 属性控制设备的宽度。假设您的网站将被带有不同屏幕分辨率的设备浏览,那么将它设置为 device-width 可以确保它能正确呈现在不同设备上。
initial-scale=1.0 确保网页加载时,以 1:1 的比例呈现,不会有任何的缩放。

响应式图像

<img src="..." class="img-responsive" alt="响应式图像">
//img-responsive类
.img-responsive {
  display: block;
  height: auto;
  max-width: 100%;
}

通过添加 img-responsive class 可以让 Bootstrap 3 中的图像对响应式布局的支持更友好。
img-responsive class 为图像赋予了 max-width: 100%; 和 height: auto; 属性,可以让图像按比例缩放,不超过其父元素的尺寸。
display 属性设置为 block,以块级元素显示。
设置 height:auto,相关元素的高度取决于浏览器。
设置 max-width 为 100% 会重写任何通过 width 属性指定的宽度。这让图片对响应式布局的支持更友好。
使用.center-block类居中

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

Bootstrap 网格系统(Grid System)的工作原理
- 行必须放置在 .container class 内,以便获得适当的对齐(alignment)和内边距(padding)。
- 使用行来创建列的水平组。
- 内容应该放置在列内,且唯有列可以是行的直接子元素。
- 预定义的网格类,比如 .row 和 .col-xs-4,可用于快速创建网格布局。LESS 混合类可用于更多语义布局。
- 列通过内边距(padding)来创建列内容之间的间隙。该内边距是通过 .rows 上的外边距(margin)取负,表示第一列和最后一列的行偏移。
- 网格系统是通过指定您想要横跨的十二个可用的列来创建的。例如,要创建三个相等的列,则使用三个 .col-xs-4。

Bootstrap 网格的基本结构:

<div class="container">
   <div class="row">
      <div class="col-*-*"></div>
      <div class="col-*-*"></div>      
   </div>
   <div class="row">...</div>
</div>
<div class="container">....

按钮 样式很多

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8"> 
    <title>Bootstrap 实例 - 按钮选项</title>
    <link rel="stylesheet" href="http://cdn.static.runoob.com/libs/bootstrap/3.3.7/css/bootstrap.min.css">  
    <script src="http://cdn.static.runoob.com/libs/jquery/2.1.1/jquery.min.js"></script>
    <script src="http://cdn.static.runoob.com/libs/bootstrap/3.3.7/js/bootstrap.min.js"></script>
</head>
<body>

<!-- 标准的按钮 -->
<button type="button" class="btn btn-default">默认按钮</button>
<!-- 提供额外的视觉效果,标识一组按钮中的原始动作 -->
<button type="button" class="btn btn-primary">原始按钮</button>
<!-- 表示一个成功的或积极的动作 -->
<button type="button" class="btn btn-success">成功按钮</button>
<!-- 信息警告消息的上下文按钮 -->
<button type="button" class="btn btn-info">信息按钮</button>
<!-- 表示应谨慎采取的动作 -->
<button type="button" class="btn btn-warning">警告按钮</button>
<!-- 表示一个危险的或潜在的负面动作 -->
<button type="button" class="btn btn-danger">危险按钮</button>
<!-- 并不强调是一个按钮,看起来像一个链接,但同时保持按钮的行为 -->
<button type="button" class="btn btn-link">链接按钮</button>

</body>
</html>

btn-lg大 btn-sm中 btn-xs小

图片
Bootstrap 提供了三个可对图片应用简单样式的 class
.img-rounded:添加 border-radius:6px 来获得图片圆角。
.img-circle:添加 border-radius:50% 来让整个图片变成圆形。
.img-thumbnail:添加一些内边距(padding)和一个灰色的边框。

常见的辅助类
close 得到关闭图标
caret 的 元素 插入符表示下拉功能和方向
使用 class pull-left 或 pull-right 来把元素向左或向右浮动
center-block 来居中元素
.show 和 .hidden 来强行设置元素显示或隐藏
.sr-only 来把元素对所有设备隐藏,除了屏幕阅读器

字体图标
http://www.runoob.com/try/demo_source/bootstrap3-glyph-icons.htm

如需使用图标,只需要简单地使用下面的代码即可。请在图标和文本之间保留适当的空间。

<span class="glyphicon glyphicon-search"></span>

带有字体图标的导航栏

<span class="glyphicon glyphicon-home">Home</span></a>

下拉菜单
使用下拉菜单,只需要在 class .dropdown 内加上下拉菜单即可

<div class="dropdown">
    <button type="button" class="btn dropdown-toggle" id="dropdownMenu1" data-toggle="dropdown">主题
        <span class="caret"></span>
    </button>
    <ul class="dropdown-menu" role="menu" aria-labelledby="dropdownMenu1">
        <li role="presentation">
            <a role="menuitem" tabindex="-1" href="#">Java</a>
        </li>
        <li role="presentation">
            <a role="menuitem" tabindex="-1" href="#">数据挖掘</a>
        </li>
        <li role="presentation">
            <a role="menuitem" tabindex="-1" href="#">数据通信/网络</a>
        </li>
        <li role="presentation" class="divider"></li>
        <li role="presentation">
            <a role="menuitem" tabindex="-1" href="#">分离的链接</a>
        </li>
    </ul>
</div>

按钮组
按钮组用于把一组按钮放在同一行里,按钮之间没有间隙.用法很简单,只需要将一组按钮放在

..
中即可.

<div class="btn-group">
        <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>

        <input type="button" class="btn btn-default" value="点我" />
</div>

//垂直<div class="btn-group-vertical">
//两端对齐(按钮组拉伸到100%宽度)只适用于<a>元素
<div class="btn-group btn-group-justified">
    <a class="btn btn-default">Left</a>
    <a class="btn btn-default">Middle</a>
    <a class="btn btn-default">Right</a>
</div>

input控件组
搜索框(实质就是 文本框+按钮)

<div class="input-group" style="width:500px;margin:0px auto;">
            <input type="text" class="form-control"/>

<span class="input-group-btn">
<input type="button" name="search" value="search" class="btn btn-default"/>
            </span>
    </div>

搜索框+文字

<div class="input-group" style="width:500px;margin:0px auto;">
            <input type="text" class="form-control" />
            <span class="input-group-addon">
                输入完成后回车
            </span>

</div>

列表组

<div style="width:100px;">
    <ul class="list-group">
        <li class="list-group-item"><a href="">选项一</a></li>
        <li class="list-group-item"><a href="">选项二</a></li>
        <li class="list-group-item"><a href="">选项三</a></li>
        <li class="list-group-item"><a href="">选项四</a></li>
    </ul>
</div>

其他元素展现为列表的样子

<div class="class="list-group" style="width:200px;">
             <a href="#" class="list-group-item active">
                <h4 class="list-group-item-heading">英格兰战胜威尔士</h4>
                <p>最新欧洲杯战况英格兰2:1战胜威尔士....</p>
             </a>

              <a href="#" class="list-group-item">
                <h4 class="list-group-item-heading">乌克兰对北爱尔兰</h4>
                <p>乌克兰对北爱尔兰....</p>
             </a>

              <a href="#" class="list-group-item">
                <h4 class="list-group-item-heading">德国对波兰</h4>
                <p>德国队波兰....</p>
             </a>
</div>

为列表组添加徽章,Bootstrap会自动将徽章放置在右边

<div style="width:150px;">
            <ul class="list-group">
                <li class="list-group-item">
                    <!-- 即使将徽章放在前面,最终还是会居右放置-->
                    <span class="badge">52</span>
                    <a href="">中国队金牌</a>
                </li>

                <li class="list-group-item">
                    <span class="badge">48</span>
                    <a href="">美国队金牌</a>
                </li>

                <li class="list-group-item">
                    <span class="badge">41</span>
                    <a href="">俄罗斯队金牌</a>
                </li>
            </ul>
    </div>

分页

<ul class="pagination">
            <li class="disabled"><a href="#">&laquo;</a></li>
            <li class="active"><a href="#">1</a></li>
            <li><a href="#">2</a></li>
            <li><a href="#">3</a></li>
            <li><a href="#">4</a></li>
            <li><a href="#">5</a></li>
            <li><a href="#">&raquo;</a></li>
</ul>
//上一页下一页
<ul class="pager">  
    <li><a href="#">上一页</a></li>
    <li><a href="#">下一页</a></li>
</ul>

缩略图

<!DOCTYPE html>
<html>
<head>
   <title>Bootstrap 实例 - 缩略图</title>
   <link href="../../css/bootstrap/css/bootstrap.css" rel="stylesheet">

</head>
<body>

<div class="row">
   <div class="col-sm-6 col-md-3">
      <a href="#" class="thumbnail">
         <img src="../../img/cat.png"
         alt="通用的占位符缩略图">
      </a>
   </div>
   <div class="col-sm-6 col-md-3">
      <a href="#" class="thumbnail">
         <img src="../../img/cat.png"
         alt="通用的占位符缩略图">
      </a>
   </div>
   <div class="col-sm-6 col-md-3">
      <a href="#" class="thumbnail">
         <img src="../../img/cat.png"
         alt="通用的占位符缩略图">
      </a>
   </div>
   <div class="col-sm-6 col-md-3">
      <a href="#" class="thumbnail">
         <img src="../../img/cat.png"
         alt="通用的占位符缩略图">
      </a>
   </div>
</div>


  <script src="../../js/jquery/jquery-2.1.4.js"></script>
   <script src="../../css/bootstrap/js/bootstrap.js"></script>
</body>
</html>

面板

//最简单的面板
<div class="panel panel-default">
    <div class="panel-body">基础面板示例</div>
</div>

//页头页脚
<div class="panel panel-default" style="width:500px;">
    <div class="panel-heading">面板页头</div>
    <div class="panel-body">面板内容省略...</div>
    <div class="panel-footer">面板页脚</div>
</div>

进度条
进度条常用于文件的上传和下载、内容的加载等场景,Bootstrap提供了多种进度条样式供选择.Bootstrap以及其他前端组件只解决进度条的样式问题,追踪进度扔需依赖服务端程序.

<div class="progress" style="width:500px;">
    <div class="progress-bar" style="width:60%;"></div>
</div>

模态对话框

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>

    <head>
        <title>演示分页组件</title>

        <meta http-equiv="content-type" content="text/html; charset=UTF-8">

        <link href="../../css/bootstrap/css/bootstrap.css" type="text/css" rel="stylesheet"></link>

    </head>

    <body>

        <h2>创建模模态对话框(Modal)</h2>
        <button class="btn btn-primary btn-lg" data-toggle="modal" data-target="#myModal">
开始演示模态框
</button>
        <div class="modal fade" id="myM  odal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
            <div class="modal-dialog">
                <div class="modal-content">
                    <div class="modal-header">
                        <button type="button" class="close" data-dismiss="modal" aria-hidden="true">
×
</button>
                        <h4 class="modal-title" id="myModalLabel">
模态框(Modal)标题
</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>

        <script src="../../css/bootstrap/js/jquery-2.1.4.js"></script>
        <script src="../../css/bootstrap/js/bootstrap.js"></script>
    </body>

</html>

根据代码分析,完整的模态对话框功能主要分为两个部分:出发按钮和对话框.出发按钮可以是一个button,也可以是一个链接,只需要加入两个元素:
data-toggle=” modal”触发器
data-target=”#myModal”,用于和相应的对话框id进行对应.
对话框部分主要分3层.
第一层:

,这一层使用class=”modal”设置样式并设置模态对话框的触发类,提供id和触发按钮的data-target属性的值进行对应,还可以添加其他的配置属性.
第二层:
,设置一个居中的对话框.
第三层:
,设置具体的内容.
注意:不要在一个模态框上重叠另一个模态框.
开发中,选项参数可以通过data属性或JavaScript进行传递。对于data属性,需要将选项名称放到data-之后,例如data-backdrop=””,具体的参数可以参考官方文档.

标签页切换

<ul class="nav nav-tabs" id="myTab">
        <li class="active"><a href="#intro" data-toggle="tab">商品介绍</a></li>
        <li><a href="#parameter" data-toggle="tab">规格参数</a></li>
        <li><a href="#qingdan" data-toggle="tab">包装清单</a></li>
        <li><a href="#pingjia" data-toggle="tab">商品评价</a></li>
        <li><a href="#shouhou" data-toggle="tab">售后保障</a></li>
</ul>

<div class="tab-content">
        <div class="tab-pane active" id="intro">我是商品介绍</div>
        <div class="tab-pane" id="parameter">我是规格参数</div>
        <div class="tab-pane" id="qingdan">我是包装清单</div>
        <div class="tab-pane" id="pingjia">我是商品评价</div>
        <div class="tab-pane" id="shouhou">我是售后保障</div>
</div>  

Tooltip
Tooltip插件的效果是鼠标悬停在目标元素上时,显示额外的提示

<a href="#" id="myTooltip" data-toggle="tooltip" data-placement="right" title="在右侧显示提示内容" class="btn btn-primary">工具提示</a>

其中data-toggle=”tooltip”是插件触发器,title的内容是提示文字,data-placement属性用于指定提示出现的位置。
要使该插件生效,需要在页面底部添加JavaScript代码完成初始化:

$("#myTooltip").tooltip();

开发者可以为tooltip()函数添加参数,或者在标签内添加”data-参数名”进行配置,比如上面例子中的data-placement=”right”.

提示信息
一般来说,任务执行成功或失败后,用户需要得到一个提示信息,这个信息可以出现在页面跳转后的新页面,也可以是Ajax执行成功后的回调。

<div id="my-alert" class="alert alert-danger fade in" style="width:400px;">
    警告,服务器挂了!
    <a href="#" class="close" data-dismiss="alert">X</a>
</div>

图片轮播

//由3部分组成:控制器、内容部分、标识符.控制器负责控制幻灯的翻页,标识符告诉我们页码,内容部分负责展现内容
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>

    <head>
        <title>演示幻灯片组件</title>

        <meta http-equiv="content-type" content="text/html; charset=UTF-8">

        <link href="../../css/bootstrap/css/bootstrap.css" type="text/css" rel="stylesheet"></link>


    </head>

    <body>

        <div id="carousel-example-generic" class="carousel slide" data-ride="carousel" style="width:730px;">
            <!--标识符:告诉我们页码-->
            <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>

            <!-- 幻灯片内容 -->
            <div class="carousel-inner" role="listbox">
                <div class="item active">
                    <img src="../../img/1.jpg">

                </div>

                <div class="item">
                    <img src="../../img/2.jpg">

                </div>

                <div class="item">
                    <img src="../../img/3.jpg">

                </div>
            </div>

            <!-- 控制器: 负责上一页/下一页 -->
            <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>

            <script src="../../css/bootstrap/js/jquery-2.1.4.js"></script>
            <script src="../../css/bootstrap/js/bootstrap.js"></script>

    </body>

</html>

导航条
Bootstrap的导航主要分为胶囊式导航、面包屑导航、头部导航3类,可以满足大多数的开发需求.

//水平胶囊导航
<ul class="nav nav-pills">
    <li class="active"><a href="#">Home</a></li>
    <li><a href="#">SVN</a></li>
    <li><a href="#">iOS</a></li>
    <li><a href="#">VB.Net</a></li>
    <li><a href="#">Java</a></li>
    <li><a href="#">PHP</a></li>
</ul>
//垂直胶囊导航
<div style="width:140px;text-align:center;">
        <ul class="nav nav-pills nav-stacked">
            <li class="active"><a href="#">Home</a></li>
            <li><a href="#">SVN</a></li>
            <li><a href="#">iOS</a></li>
            <li><a href="#">VB.Net</a></li>
            <li><a href="#">Java</a></li>
            <li><a href="#">PHP</a></li>
        </ul>

</div>
//面包屑导航
<ul class="breadcrumb">
    <li><a href="#">首页</a></li>
    <li><a href="#">资料库</a></li>
    <li><a href="#">数据</a></li>
</ul>
//头部导航
<nav class="navbar navbar-default">
  <div class="container-fluid">
    <!-- Brand and toggle get grouped for better mobile display -->
    <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="#">网站Logo</a>
    </div>

    <!—这里设置网站的链接 -->
    <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
      <ul class="nav navbar-nav">
        <li class="active"><a href="#">链接<span class="sr-only">(current)</span></a></li>
        <li><a href="#">链接</a></li>
        <li class="dropdown">
          <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">下拉菜单<span class="caret"></span></a>
          <ul class="dropdown-menu">
            <li><a href="#">Action</a></li>
            <li><a href="#">Another action</a></li>
            <li><a href="#">Something else here</a></li>
            <li role="separator" class="divider"></li>
            <li><a href="#">Separated link</a></li>
            <li role="separator" class="divider"></li>
            <li><a href="#">One more separated link</a></li>
          </ul>
        </li>
      </ul>
      <form class="navbar-form navbar-left" role="search">
        <div class="form-group">
          <input type="text" class="form-control" placeholder="Search">
        </div>
        <button type="submit" class="btn btn-default">搜索</button>
      </form>
      <ul class="nav navbar-nav navbar-right">
        <li><a href="#">链接</a></li>
        <li class="dropdown">
          <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">下拉菜单<span class="caret"></span></a>
          <ul class="dropdown-menu">
            <li><a href="#">Action</a></li>
            <li><a href="#">Another action</a></li>
            <li><a href="#">Something else here</a></li>
            <li role="separator" class="divider"></li>
            <li><a href="#">Separated link</a></li>
          </ul>
        </li>
      </ul>
    </div><!-- /.navbar-collapse -->
  </div><!-- /.container-fluid -->
</nav>
//具体分析头部导航主要分为两层结构,第一层是最外面的 <nav class="navbar navbar-default"></nav>,这一层用于设置导航的基本样式
将.navbar-default类替换为 .navbar-inverse类,则显示为反色的导航(黑底白字)
第二层有两个并列的元素: <div class="navbar-header"></div>内部用于设置标题内容.
<div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">….</div>内部则用于编写具体的导航链接、搜索表单、下拉菜单等具体的导航内容。

Bootstrap提供了在小窗口下导航 收起/展开的功能

东西很多,继续努力!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值