1. 程式人生 > >前端之Bootstrap框架

前端之Bootstrap框架

Bootstrap jquery

一、介紹

1、特點

Bootstrap是Twitter開源的基於HTML、CSS、JavaScript的前端框架。

它是為實現快速開發Web應用程序而設計的一套前端工具包。支持響應式布局,並且在V3版本之後堅持移動設備優先。


2、下載

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

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

我們使用V3版本的Bootstrap,我們下載的是用於生產環境的Bootstrap。

v3中文地址:https://v3.bootcss.com/getting-started/#download

由於Bootstrap的某些組件依賴於jQuery,所以請確保下載對應版本的jQuery文件,來保證Bootstrap相關組件運行正常。


3、引入Bootstrap

使用link引入bootstrap.min.css

引入bootstrap.min.js要依賴jquery,所以先要導入jquery,然後導入bootstrap.min.js


<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <link rel="stylesheet" href="bootstrap/css/bootstrap.min.css">
    <title>Bootstrap示例1</title>
</head>
<body>
...
<script src="https://cdn.bootcss.com/jquery/3.3.1/jquery.min.js"></script>
<script src="bootstrap/js/bootstrap.min.js"></script>
</body>
</html>

4、布局

(1)布局容器

.container 類用於固定寬度並支持響應式布局的容器。

.container-fluid 類用於 100% 寬度,占據全部視口(viewport)的容器。

(2)柵格系統

Bootstrap 提供了一套響應式、移動設備優先的流式柵格系統,隨著屏幕或視口(viewport)尺寸的增加,系統會自動分為最多12列。

柵格系統用於通過一系列的行(row)與列(column)的組合來創建頁面布局,你的內容就可以放入這些創建好的布局中


超小屏幕手機(< 768px) 類前綴:.col-xs-

小屏幕 平板 (≥768px) 類前綴:.col-sm-

(≥768px)中等屏幕 桌面顯示器 (≥992px) 類前綴:.col-md-

大屏幕 大桌面顯示器 (≥1200px) 類前綴:.col-lg-

(3)柵格練習示例

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <link rel="stylesheet" href="bootstrap/css/bootstrap.min.css">
    <title>Bootstrap示例1</title>
    <style>
        .row div {
            border: 1px solid black;
            border-bottom: 1px solid green;
            height: 30px;
            background-color: lightgoldenrodyellow;
        }
    </style>
</head>
<body>
<div>
    <div>
        <div class="col-xs-12 col-md-8">.col-xs-12 .col-md-8</div>
        <div class="col-xs-6 col-md-4">.col-xs-6 .col-md-4</div>
    </div>
    <!-- Columns start at 50% wide on mobile and bump up to 33.3% wide on desktop -->
    <div>
        <div class="col-xs-6 col-md-4">.col-xs-6 .col-md-4</div>
        <div class="col-xs-6 col-md-4">.col-xs-6 .col-md-4</div>
        <div class="col-xs-6 col-md-4">.col-xs-6 .col-md-4</div>
    </div>
    <!-- Columns are always 50% wide, on mobile and desktop -->
    <div>
        <div>.col-xs-6</div>
        <div>.col-xs-6</div>
    </div>
    
    <div>
        <div>.col-md-5</div>
        <div class="col-md-6 col-md-offset-1">.col-md-6 col-md-offset-1</div>   <!-- col-md-6向右偏移一列-->
    </div>
     <div>
        <div>.col-md-5</div>
        <div>.col-md-7
        </div>
    </div>
    
    <div>
        <div class="col-md-5 col-md-push-7">.col-md-5</div>                 <!--col-md-5被向右推了7列-->
        <div class="col-md-7 col-md-pull-5">.col-md-7                       <!--col-md-7被向左拉了5列-->
        </div>
    </div>
</div>
<script src="jquery-3.3.1.min.js"></script>
<script src="bootstrap/js/bootstrap.min.js"></script>
</body>
</html>

效果圖如下:

技術分享圖片

二、Bootstrap全局樣式

1、標題

<h1>一級標題36px</h1>

<h2>二級標題30px</h2>

<h3>三級標題24px</h3>

<h4>四級標題18px</h4>

<h5>五級標題14px</h5>

<h6>六級標題12px</h6>

<!--除了使用h標簽,Bootstrap內置了相應的全局樣式-->

<!--內聯標簽應用標題樣式-->

<span>一級標題36px</span>

<span>二級標題30px</span>

<span>三級標題24px</span>

<span>四級標題18px</span>

<span>五級標題14px</span>

<span>六級標題12px</span>


<h1> 一級標題 <small> 小標題 </small> </h1> <!--副標題-->


2、文本對齊

<p>文本左對齊</p>

<p>文本居中</p>

<p>文本右對齊</p>


3、文本大小寫

<p>Lowercased text.</p> <!--內容轉為小寫-->

<p>Uppercased text.</p> <!--內容轉為大寫-->

<p>Capitalized text.</p> <!--內容首字母大寫-->


4、表格

.table-striped 條紋狀表格

.table-bordered 帶邊框的表格

.table-hover 鼠標懸停變色的表格

.table-condensed 緊縮型表格

.table-responsive 響應式表格


5、狀態類

.active 鼠標懸停在行或單元格上時所設置的顏色

.success 標識成功或積極的動作

.info 標識普通的提示信息或動作

.warning 標識警告或需要用戶註意

.danger 標識危險或潛在的帶來負面影響的動作


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

效果圖如下:

技術分享圖片

7、圖片

<img src="http://img.tuku.cn/file_thumb/201504/m2015040315561007.jpg" alt="Responsive image">
<img src="http://img.tuku.cn/file_thumb/201504/m2015040315561007.jpg" alt="...">       <!--圖片四個角圓弧-->
<img src="http://img.tuku.cn/file_thumb/201504/m2015040315561007.jpg" alt="...">         <!--橢圓形的圖片-->
<img src="http://img.tuku.cn/file_thumb/201504/m2015040315561007.jpg" alt="...">     <!--圖片有白色的外邊框-->

8、輔助類

(1)文本顏色

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>

(2)背景顏色

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

(3)關閉按鈕

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


(4)下拉三角

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


(5)快速浮動

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

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

(6)內容塊居中

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

(7)清除浮動

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

(8)顯示與隱藏

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

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


三、Bootstrap組件

1、Glyphicons 字體圖標

字體地址:https://v3.bootcss.com/components/

用法:

<spam class="glyphicon glyphicon-asterisk"></spamclass> <!--每個圖標對應一個類名,spam標簽調用類名即可-->


2、菜單

(1)下拉菜單

<div>
  <button class="btn btn-default dropdown-toggle" type="button" id="dropdownMenu1" data-toggle="dropdown" aria-haspopup="true" aria-expanded="true">
    Dropdown
    <span></span>
  </button>
  <ul aria-labelledby="dropdownMenu1">
    <li><a href="#">操作</a></li>
    <li><a href="#">設置</a></li>
    <li><a href="#">應用</a></li>
    <li role="separator"></li>                     <!--分割線-->
    <li><a href="#">鏈接</a></li>
  </ul>
</div>

如果菜單向上彈出:
<div>
  <button class="btn btn-default dropdown-toggle" type="button" id="dropdownMenu2" data-toggle="dropdown" aria-haspopup="true" aria-expanded="true">
    Dropup
    <span></span>
  </button>
  <ul aria-labelledby="dropdownMenu2">
    <li><a href="#">操作</a></li>
    <li><a href="#">設置</a></li>
    <li><a href="#">應用</a></li>
    <li role="separator"></li>
    <li><a href="#">鏈接</a></li>
  </ul>
</div>

技術分享圖片 技術分享圖片


(2)菜單對齊

默認dropdown-menu就是左對齊

<ul class="dropdown-menu dropdown-menu-right" aria-labelledby="dLabel"> ...</ul> 菜單右對齊


(3)標題和禁用的菜單項

在任何下拉菜單中均可通過添加標題來標明一組動作。

設置ul標簽中的li標簽:

<li>Dropdown header</li> <!--標題-->

<li> <a href="#"> Disabled link </a> </li> <!--禁用的菜單項-->


3、按鈕組

(1)嵌套

<div role="group" aria-label="...">
  <button type="button" class="btn btn-default">1</button>
  <button type="button" class="btn btn-default">2</button>
  
  <div role="group">
    <button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
      Dropdown
      <span></span>
    </button>
    <ul>
      <li><a href="#">Dropdown link</a></li>
      <li><a href="#">Dropdown link</a></li>
    </ul>
  </div>
</div>

效果圖如下:

技術分享圖片


(2)垂直排列

垂直排列只需要

<div role="group" aria-label="...">...</div>


(3)單按鈕下拉菜單(按鈕和右邊的下箭頭在一起)

<div class="btn-group">
  <button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
    Action <span></span>
  </button>
  <ul>
    <li><a href="#">操作</a></li>
    <li><a href="#">設置</a></li>
    <li><a href="#">應用</a></li>
    <li role="separator"></li>
    <li><a href="#">鏈接</a></li>
  </ul>
</div>


(4)分裂式按鈕下拉菜單(按鈕和右邊的下箭頭是分開的)

<div class="btn-group">
  <button type="button" class="btn btn-danger">Action</button>
  <button type="button" class="btn btn-danger dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
    <span class="caret"></span>
    <span class="sr-only">Toggle Dropdown</span>
  </button>
  <ul class="dropdown-menu">
    <li><a href="#">操作</a></li>
    <li><a href="#">設置</a></li>
    <li><a href="#">應用</a></li>
    <li role="separator" class="divider"></li>
    <li><a href="#">鏈接</a></li>
  </ul>
</div>

.btn-default 默認按鈕

.btn-danger 紅色按鈕

.btn-info 淺藍色按鈕

.btn-success 綠色按鈕

.btn-warning ×××按鈕

.btn-primary 深藍色按鈕

(5)兩端對齊的按鈕組

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

效果圖如下:

技術分享圖片


4、輸入框組

<div>
  <span id="basic-addon1">@</span>
  <input type="text" placeholder="Username" aria-describedby="basic-addon1">
</div>
<div>
  <input type="text" placeholder="Recipient's username" aria-describedby="basic-addon2">
  <span id="basic-addon2">@example.com</span>
</div>
<div>
  <span>$</span>
  <input type="text" aria-label="Amount (to the nearest dollar)">
  <span>.00</span>
</div>
<label for="basic-url">Your vanity URL</label>
<div>
  <span id="basic-addon3">https://example.com/users/</span>
  <input type="text" id="basic-url" aria-describedby="basic-addon3">
</div>

效果圖如下:

技術分享圖片

<div>
  <div>
    <div>
      <span>
        <button class="btn btn-default" type="button">Go!</button>
      </span>
      <input type="text" placeholder="Search for...">
    </div>
  </div>
  <div>
    <div>
      <input type="text" placeholder="Search for...">
      <span>
        <button class="btn btn-default" type="button">Go!</button>
      </span>
    </div>
  </div>
</div>

效果圖如下:

技術分享圖片

5、導航


(1)標簽頁

<ul class="nav nav-tabs">
  <li role="presentation"><a href="#">Home</a></li>
  <li role="presentation"><a href="#">Profile</a></li>
  <li role="presentation"><a href="#">Messages</a></li>
</ul>


<ul class="nav nav-pills" >...</ul>                          <!-- 膠囊式標簽頁 -->
<ul class ="nav nav-pills nav-stacked" >...< /ul >          < !-- 膠囊式標簽頁垂直顯示 -->
<ul class ="nav nav-pills nav-justified" >...</ul>            < !-- 膠囊式標簽頁兩端對齊 -->

(2)禁用的鏈接

<li role="presentation"><a href="#">禁用的鏈接</a></li>


(3)帶下拉菜單的膠囊式標簽頁

<ul class="nav nav-pills">
   <li role="presentation"><a href="#">Home</a></li>
   <li role="presentation"><a href="#">Help</a></li>
  <li role="presentation">
    <a data-toggle="dropdown" href="#" role="button" aria-haspopup="true" aria-expanded="false">
      Dropdown <span></span>
    </a>
    <ul>
        <li><a href="#">操作</a></li>
        <li><a href="#">設置</a></li>
        <li><a href="#">應用</a></li>
        <li role="separator"></li>
        <li><a href="#">鏈接</a></li>
    </ul>
  </li>
    <li role="presentation"><a href="#"> Main </a> </li>
</ul>

效果圖如下:

技術分享圖片



6、分頁

<nav aria-label="Page navigation">
  <ul>
     <li><a href="#" aria-label="Previous"><span aria-hidden="true">&laquo;</span></a></li>   < !-- 禁止點擊-->
    <li><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="#" aria-label="Next">
            <span aria-hidden="true">&raquo;</span>
        </a>
    </li>
  </ul>
</nav>



<nav aria-label="...">                                                                                  < !--居中樣式顯示上下翻頁-->
  <ul>
    <li><a href="#">上一頁</a></li>
    <li><a href="#">下一頁</a></li>
  </ul>
</nav>

7、標簽和徽章

(1)標簽

<h3>Example heading <span class="label label-default">New</span></h3>
<span class="label label-default">Default</span>
<span class="label label-primary">Primary</span>
<span class="label label-success">Success</span>
<span class="label label-info">Info</span>
<span class="label label-warning">Warning</span>
<span class="label label-danger">Danger</span>

效果圖如下:

技術分享圖片

(2)徽章


<ul class="nav nav-pills" role="tablist">
  <li role="presentation"><a href="#">Home <span>42</span></a></li>
  <li role="presentation"><a href="#">Profile</a></li>
  <li role="presentation"><a href="#">Messages <span>3</span></a></li>
</ul>

效果圖如下:

技術分享圖片


8、頁頭

頁頭組件能夠為 h1 標簽增加適當的空間,並且與頁面的其他部分形成一定的分隔。它支持 h1 標簽內內嵌 small 元素的默認效果,還支持大部分其他組件(需要增加一些額外的樣式)。

<div>

<h1>Example page header <small>Subtext for header</small></h1>

</div>

9、縮略圖

<div>
    <div class="col-sm-6 col-md-4">
        <div>
            <img src="https://dummyimage.com/242x200/EFH/fff.png" alt="...">
            <div>
                <h3>Thumbnail label</h3>
                <p>物美價廉,不要錯過啊,歡迎采購</p>
                <p><a href="#" class="btn btn-primary" role="button">Button</a> <a href="#" class="btn btn-default"
                                                                                   role="button">Button</a></p>
            </div>
        </div>
    </div>
    <div class="col-sm-6 col-md-4">
        <div>
            <img src="https://dummyimage.com/242x200/ACE/fff.png" alt="...">
            <div>
                <h3>Thumbnail label</h3>
                <p>物美價廉,不要錯過啊,歡迎采購</p>
                <p><a href="#" class="btn btn-primary" role="button">Button</a> <a href="#" class="btn btn-default"
                                                                                   role="button">Button</a></p>
            </div>
        </div>
    </div>
    <div class="col-sm-6 col-md-4">
        <div>
            <img src="https://dummyimage.com/242x200/EAC/fff.png" alt="...">
            <div>
                <h3>Thumbnail label</h3>
                <p>物美價廉,不要錯過啊,歡迎采購</p>
                <p><a href="#" class="btn btn-primary" role="button">Button</a> <a href="#" class="btn btn-default"
                                                                                   role="button">Button</a></p>
            </div>
        </div>
    </div>
</div>

效果圖如下:

技術分享圖片

10、進度條

(1)根據情境變化效果以及條紋效果

<div>
    <div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="40" aria-valuemin="0"
         aria-valuemax="100" style="width: 40%">
        <span>40% Complete (success)</span>
    </div>
</div>
<div>
    <div class="progress-bar progress-bar-info" role="progressbar" aria-valuenow="20" aria-valuemin="0"
         aria-valuemax="100" style="width: 20%">
        <span>20% Complete</span>
    </div>
</div>
<div>
    <div class="progress-bar progress-bar-warning" role="progressbar" aria-valuenow="60" aria-valuemin="0"
         aria-valuemax="100" style="width: 60%">
        <span>60% Complete (warning)</span>
    </div>
</div>


<div>
    <div class="progress-bar progress-bar-striped progress-bar-striped" role="progressbar" aria-valuenow="40"
         aria-valuemin="0" aria-valuemax="100" style="width: 40%">
        <span>40% Complete (info)</span>
    </div>
</div>
<div>
    <div class="progress-bar progress-bar-danger progress-bar-striped" role="progressbar" aria-valuenow="20"
         aria-valuemin="0" aria-valuemax="100" style="width: 20%">
        <span>20% Complete</span>
    </div>
</div>

技術分享圖片


(2)示例:模擬滾動的進度條

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <link rel="stylesheet" href="bootstrap/css/bootstrap.min.css">
    <title>滾動的進度條示例</title>
</head>
<body>
<div>
    <div>
        <div id="p1" class="progress-bar progress-bar-striped active progress-bar-success" role="progressbar" aria-valuenow="45" aria-valuemin="0" aria-valuemax="100" style="width: 0%">
             0%
        </div>
    </div>
<button id="b1">點我開始下線!</button>
</div>
<script src="https://cdn.bootcss.com/jquery/3.3.1/jquery.min.js"></script>
<script src="bootstrap/js/bootstrap.min.js"></script>

<script>
    var n = 0;
    var t;
    function changeWidth() {
        n += 1;
        $("#p1").css("width", n+"%").text(n+"%");
        if (n >= 100){
            // 進度條走完了,刪除定時器
            clearInterval(t);
            t = undefined;
        }
    }
    $("#b1").on("click", function () {
        //
        if (!t){
            t = setInterval(changeWidth, 100);
        }
    })
</script>
</body>
</html>


11、面板

<div class="panel panel-primary">
  <div>Panel heading      primary樣式的面板</div>
    <div><p>...</p></div>
</div>
 <div class="panel panel-success">
  <div>Panel heading      success樣式的面板</div>
    <div><p>...</p></div>
</div>
<div class="panel panel-warning">
  <div>Panel heading      warning樣式的面板</div>
    <div><p>...</p></div>
</div>
<div class="panel panel-info">
  <div>Panel heading      info樣式的面板</div>
    <div><p>...</p></div>
</div>
<div class="panel panel-danger">
  <div>Panel heading      danger樣式的面板</div>
    <div><p>...</p></div>
</div>
<div class="panel panel-default">
  <div>Panel heading      default樣式的面板</div>
    <div><p>...</p></div>
</div>

效果圖如下:

技術分享圖片





前端之Bootstrap框架