前端之Bootstrap框架
前端之Bootstrap框架
目錄一、Bootstrap簡介
Bootstrap 是最受歡迎的 HTML、CSS 和 JS 框架,用於開發響應式佈局、移動裝置優先的 WEB 專案。
在使用Bootstrap的時候所有的頁面樣式都只需要你通過class來調節即可。【原理其實很簡單,就是別人替你進行了封裝(寫好了相關的class類),你只需要匯入檔案,然後直接使用即可】
版本選擇建議使用v3版本:
注意:bootstrap的js程式碼是依賴於jQuery的,也就意味著你在使用Bootstrap動態效果的時候,一定要匯入jQuery
因為bootstrap官方文件十分齊全,所以在此只做一下簡單的使用,完整版參考官方文件,十分簡單。
二、環境配置
html檔案匯入如下
<link rel="stylesheet" href="bootstrap-3.4.1-dist/css/bootstrap.min.css"> <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.4.1/jquery.min.js"></script> <script src="bootstrap-3.4.1-dist/js/bootstrap.min.js"></script>
三、全域性CSS樣式
Bootstrap 將設定全域性的 CSS 樣式。HTML 的基本元素均可以通過 class 設定樣式並得到增強效果。還有先進的柵格系統。
1、佈局容器
Bootstrap 需要為頁面內容和柵格系統包裹一個 .container
容器。我們提供了兩個作此用處的類。注意,由於 padding
等屬性的原因,這兩種 容器類不能互相巢狀。
.container
類用於固定寬度並支援響應式佈局的容器。
<div class="container"> 左右兩側有留白
...
</div>
.container-fluid
類用於 100% 寬度,佔據全部視口(viewport)的容器。
<div class="container-fluid"> 左右兩側沒有留白
...
</div>
總結:後續在使用bootstrap做頁面的時候 上來先寫一個div,class="container"
,之後在div內部書寫頁面
2、柵格系統
Bootstrap 提供了一套響應式、移動裝置優先的流式柵格系統,隨著螢幕或視口(viewport)尺寸的增加,系統會自動分為最多12列。
<div class="row"></div>
寫一個row就是將所在的區域劃分成12份
<div class="col-md-6 "> 獲取你所要的份數
# 在使用bootstrap的時候 腦子裡面一定要做12的加減法
可以使用以下程式碼驗證
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<link rel="stylesheet" href="bootstrap-3.4.1-dist/css/bootstrap.min.css">
<script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
<script src="bootstrap-3.4.1-dist/js/bootstrap.min.js"></script>
<style>
#d1 {
background-color: red;
height: 100px;
border: 5px solid black;
}
</style>
</head>
<body>
<div class="container">
<div class="row">
<div class="col-md-1" id="d1"></div>
<div class="col-md-1" id="d1"></div>
<div class="col-md-1" id="d1"></div>
<div class="col-md-1" id="d1"></div>
<div class="col-md-1" id="d1"></div>
<div class="col-md-1" id="d1"></div>
<div class="col-md-1" id="d1"></div>
<div class="col-md-1" id="d1"></div>
<div class="col-md-1" id="d1"></div>
<div class="col-md-1" id="d1"></div>
<div class="col-md-1" id="d1"></div>
<div class="col-md-1" id="d1"></div>
</div>
</div>
</body>
</html>
3、柵格引數
.col-xs- .col-sm- .col-md- .col-lg-
# 針對不同的顯示器 bootstrap會自動選擇對應的引數
# 如果你想要相容所有的顯示器 你就全部加上即可
# 在一行如何移動位置
<div class="col-md-8 c1 col-md-offset-2"></div>
程式碼測試如下
<div class="container">
<div class="row">
<div class="col-xs-1" id="d1"></div>
<div class="col-xs-1" id="d1"></div>
<div class="col-xs-1" id="d1"></div>
<div class="col-xs-1" id="d1"></div>
<div class="col-xs-1" id="d1"></div>
<div class="col-xs-1" id="d1"></div>
<div class="col-xs-1" id="d1"></div>
<div class="col-xs-1" id="d1"></div>
<div class="col-xs-1" id="d1"></div>
<div class="col-xs-1" id="d1"></div>
<div class="col-xs-1" id="d1"></div>
<div class="col-xs-1" id="d1"></div>
</div>
4、排版
bootstrap將所有原生的HTML標籤的文字字型統一設定成了肉眼可以接受的樣式,將一部分標籤的樣式進行了改變,比如:a、p 等。
同時,bootstrap提供了效果一樣的標籤,但是標籤表達的意思不一樣(語義)。
5、表格
我們使用原生的html程式碼製作表格
<table>
<thead>
<tr>
<th>編號</th>
<th>姓名</th>
<th>年齡</th>
<th>性別</th>
</tr>
</thead>
<tbody>
<tr>
<td>1</td>
<td>楊毅</td>
<td>18</td>
<td>男</td>
</tr>
<tr>
<td>2</td>
<td>楊毅</td>
<td>18</td>
<td>男</td>
</tr>
<tr>
<td>3</td>
<td>楊毅</td>
<td>18</td>
<td>男</td>
</tr>
</tbody>
</table>
我們可以使用bootstrap進行美化,發現好看了不少
<table class="table table-hover table-striped table-bordered">
<thead>
<tr class="success">
<th>編號</th>
<th>姓名</th>
<th>年齡</th>
<th>性別</th>
</tr>
</thead>
<tbody>
<tr class="active">
<td>1</td>
<td>楊毅</td>
<td>18</td>
<td>男</td>
</tr>
<tr class="warning">
<td>2</td>
<td>楊毅</td>
<td>18</td>
<td>男</td>
</tr>
<tr class="danger">
<td>3</td>
<td>楊毅</td>
<td>18</td>
<td>男</td>
</tr>
</tbody>
</table>
6、表單
重點:針對表單標籤 加樣式就用form-control,class="form-control"
。
<div class="container">
<div class="col-md-8 col-md-offset-2">
<h2 class="text-center">登陸頁面</h2>
<form action="">
<p>username:<input type="text" class="form-control"></p>
<p>password:<input type="text" class="form-control"></p>
<p>
<select name="" id="" class="form-control">
<option value="">111</option>
<option value="">222</option>
<option value="">333</option>
</select>
</p>
<textarea name="" id="" cols="30" rows="10" class="form-control"></textarea>
<input type="submit">
</form>
</div>
</div>
"""
<input type="checkbox">222
<input type="radio">333
checkbox和radio我們一般不會給它加form-control,直接使用原生的即可
"""
# 針對報錯資訊 可以加has-error(input的父標籤加)【input邊框有紅色效果】
<p class="has-error">
username:
<input type="text" class="form-control">
</p>
7、按鈕
# 將連結設定為按鈕
<a href="https://www.baidu.com/" class="btn btn-primary">點我</a>
<button class="btn btn-danger">按我</button>
<button class="btn btn-default">按我</button>
<button class="btn btn-success">按我</button>
<button class="btn btn-info">按我</button>
<button class="btn btn-warning">按我</button>
<button class="btn btn-warning btn-lg">按我</button>
<button class="btn btn-warning btn-sm">按我</button>
<button class="btn btn-warning btn-xs">按我</button>
<input type="submit" class="btn btn-primary btn-block">
通過給按鈕新增 .btn-block 類可以將其拉伸至父元素100%的寬度,而且按鈕也變為了塊級(block)元素。
8、圖表
<style>
span {
color: greenyellow;
}
</style>
"""一般使用span標籤來新增圖示,因為span是行內標籤,同時圖白哦的顏色可以用文字顏色來進行修改"""
<h2 class="text-center">登陸頁面 <span class="glyphicon glyphicon-user"></span></h2>
四、元件
1、導航條
<nav class="navbar navbar-default"> # 預設顏色
<nav class="navbar navbar-inverse"> # 黑色
2、分頁器
<nav aria-label="Page navigation">
<ul class="pagination">
<li>
<a href="#" aria-label="Previous">
<span aria-hidden="true">«</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">»</span>
</a>
</li>
</ul>
</nav>
3、彈框
https://lipis.github.io/bootstrap-sweetalert/
swal('你還好嗎?')
undefined
swal('你還好嗎?')
undefined
swal('你還好嗎?','我很好!')
undefined
swal('你還好嗎?','我很好!!','success')
undefined
swal('你還好嗎?','我很好!','warning')
undefined
swal('你還好嗎?','我很好!','error')
undefined
swal('你還好嗎?','我很好!','info')
undefined
五、案例
由此,我們可以使用Bootstrap快速搭建一個簡單的頁面。
程式碼如下
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<link rel="stylesheet" href="bootstrap-3.4.1-dist/css/bootstrap.min.css">
<script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
<script src="bootstrap-3.4.1-dist/js/bootstrap.min.js"></script>
</head>
<body>
<div class="container-fluid">
<nav class="navbar navbar-inverse">
<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"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="#">圖書管理系統</a>
</div>
<!-- Collect the nav links, forms, and other content for toggling -->
<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="#">交流論壇</a></li>
<li><a href="#">經驗分享</a></li>
<li><a href="#">學習專區</a></li>
</ul>
</li>
</ul>
<form class="navbar-form navbar-left">
<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>
<div class="row">
<div class="col-md-3">
<div class="list-group">
<a href="#" class="list-group-item active">
圖書列表
</a>
<a href="#" class="list-group-item">作者列表</a>
<a href="#" class="list-group-item">論壇列表</a>
<a href="#" class="list-group-item">出版社列表</a>
<a href="#" class="list-group-item">資訊反饋</a>
</div>
</div>
<div class="col-md-9">
<div class="panel panel-primary">
<div class="panel-heading ">
<h3 class="panel-title">圖書管理系統<span class="glyphicon glyphicon-qrcode pull-right"></span></h3>
</div>
<div class="panel-body">
<div class="row">
<div class="col-lg-6">
<div class="input-group">
<input type="text" class="form-control" placeholder="Search for...">
<span class="input-group-btn">
<button class="btn btn-default" type="button">Go!</button>
</span>
</div><!-- /input-group -->
</div><!-- /.col-lg-6 -->
<button class="btn btn-primary">新增</button>
</div>
<br>
<div class="row">
<table class="table table-hover table-striped table-bordered">
<thead>
<tr>
<th class="text-center">ID</th>
<th class="text-center">書名</th>
<th class="text-center">作者</th>
<th class="text-center">分類</th>
<th class="text-center">價格</th>
<th class="text-center">操作</th>
</tr>
</thead>
<tbody>
<tr>
<td class="text-center">1</td>
<td class="text-center">《百年孤獨》</td>
<td class="text-center">加西亞·馬爾克斯</td>
<td class="text-center">文學</td>
<td class="text-center">48.0</td>
<td class="text-center">
<button class="btn btn-primary btn-xs">編輯</button>
<button class="btn btn-warning btn-xs">刪除</button>
</td>
</tr>
<tr>
<td class="text-center">2</td>
<td class="text-center">《圍城》</td>
<td class="text-center">錢鍾書</td>
<td class="text-center">文學</td>
<td class="text-center">24.0</td>
<td class="text-center">
<button class="btn btn-primary btn-xs">編輯</button>
<button class="btn btn-warning btn-xs">刪除</button>
</td>
</tr>
<tr>
<td class="text-center">3</td>
<td class="text-center">《我們仨》</td>
<td class="text-center">楊絳</td>
<td class="text-center">文學</td>
<td class="text-center">15.0</td>
<td class="text-center">
<button class="btn btn-primary btn-xs">編輯</button>
<button class="btn btn-warning btn-xs">刪除</button>
</td>
</tr>
<tr>
<td class="text-center">4</td>
<td class="text-center">《黃金時代》</td>
<td class="text-center">王小波</td>
<td class="text-center">小說</td>
<td class="text-center">30.0</td>
<td class="text-center">
<button class="btn btn-primary btn-xs">編輯</button>
<button class="btn btn-warning btn-xs">刪除</button>
</td>
</tr>
<tr>
<td class="text-center">1</td>
<td class="text-center">《原則》</td>
<td class="text-center">瑞·達內歐</td>
<td class="text-center">文學</td>
<td class="text-center">48.0</td>
<td class="text-center">
<button class="btn btn-primary btn-xs">編輯</button>
<button class="btn btn-warning btn-xs">刪除</button>
</td>
</tr>
<tr>
<td class="text-center">1</td>
<td class="text-center">《窮查理寶典》</td>
<td class="text-center">查理·芒格</td>
<td class="text-center">文學</td>
<td class="text-center">78.0</td>
<td class="text-center">
<button class="btn btn-primary btn-xs">編輯</button>
<button class="btn btn-warning btn-xs">刪除</button>
</td>
</tr>
</tbody>
</table>
<nav aria-label="Page navigation" class="text-center">
<ul class="pagination">
<li>
<a href="#" aria-label="Previous">
<span aria-hidden="true">«</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">»</span>
</a>
</li>
</ul>
</nav>
</div>
</div>
</div>
</div>
</div>
</div>
</body>
</html>