BootStrap基礎知識總結
阿新 • • 發佈:2018-11-28
文章目錄
目標
掌握什麼是響應式及響應式的原理
掌握BootStrap的柵格系統
瞭解BootStrap的其他元件及JS控制元件
表單校驗案例
技術分析
- trigger : 觸發事件,但是會執行類似瀏覽將游標移到輸入框內的這種瀏覽器預設行為
- triggerHandler : 僅僅只會觸發事件所對應的函式
- is()
步驟分析
- 首先給必填項,新增尾部新增一個小紅點
- 獲取使用者輸入的資訊,做相應的校驗
- 事件: 獲得焦點, 失去焦點, 按鍵擡起
- 表單提交的事件
程式碼實現
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<link rel="stylesheet" href="../css/style.css" />
<title></title>
<!--
1. 首先給必填項,新增尾部新增一個小紅點
2. 獲取使用者輸入的資訊,做相應的校驗
3. 事件: 獲得焦點, 失去焦點, 按鍵擡起
4. 表單提交的事件
Jq的方式來實現:
1. 匯入JQ的檔案
2. 文件載入事件: 在必填項後天加一個小紅點
3. 表單校驗確定事件: blur focus keyup
4. 提交表單 submit
-->
<script type="text/javascript" src="../js/jquery-1.11.0.js" ></script>
<script>
$(function(){ //預設做一些頁面初始化
//動態在必填項後面新增小紅點
$(".bitian").after("<font class='high'>*</font>");
//給必填項繫結事件
$(".bitian").blur(function(){
//首先獲取使用者當前輸入的值
var value = this.value; //123
//清空上一次提示的資訊
$(this).parent().find(".formtips").remove();
//判斷當前的值是哪一項輸入的值
if($(this).is("#username")){ //判斷是否是使用者名稱輸入項
if(value.length < 6){
$(this).parent().append("<span class='formtips onError'>使用者名稱太短了</span>");
}else{
$(this).parent().append("<span class='formtips onSuccess'>使用者名稱夠用</span>");
}
}
if($(this).is("#password")){ //判斷是否是密碼輸入項
if(value.length < 6){
$(this).parent().append("<span class='formtips onError'>,密碼太短了</span>");
}else{
$(this).parent().append("<span class='formtips onSuccess'>密碼夠用</span>");
}
}
}).focus(function(){
$(this).triggerHandler("blur");
}).keyup(function(){
$(this).triggerHandler("blur");
})
//給表單提交繫結事件
$("form").submit(function(){
//觸發所有必填項的校驗
$(".bitian").trigger("focus");
//找到錯誤資訊的個數
if($(".onError").length > 0){
return false;
}
return true;
});
});
/*
$(function(){
// 在所有必填項後天加一個小紅點 *
$(".bitian").after("<font class='high'>*</font>");
//事件繫結
$(".bitian").blur(function(){
// var value = this.value;
var value = $(this).val();
//清空當前必填項後面的span
// $(".formtips").remove();
$(this).parent().find(".formtips").remove();
//獲得當前事件是誰的
if($(this).is("#username")){
//校驗使用者名稱
if(value.length < 6){
$(this).parent().append("<span class='formtips onError'>使用者名稱太短了</span>");
}else{
$(this).parent().append("<span class='formtips onSuccess'>使用者名稱夠用</span>");
}
}
if($(this).is("#password")){
//校驗密碼
if(value.length < 3){
$(this).parent().append("<span class='formtips onError'>密碼太短了</span>");
}else{
$(this).parent().append("<span class='formtips onSuccess'>密碼夠用</span>");
}
}
}).focus(function(){
$(this).triggerHandler("blur");
}).keyup(function(){
$(this).triggerHandler("blur");
});
// $(".bitian").blur(function(){}).focus(function(){}).keyup(function(){})
//給表單繫結提交事件
$("form").submit(function(){
//觸發必填項的校驗邏輯
$(".bitian").trigger("focus");
var length = $(".onError").length
if(length > 0){
return false;
}
return true;
});
});*/
</script>
</head>
<body>
<form action="../index.html">
<div>
使用者名稱:<input type="text" class="bitian" id="username" />
</div>
<div>
密碼:<input type="password" class="bitian" id="password" />
</div>
<div>
手機號:<input type="tel" />
</div>
<div>
<input type="submit" />
</div>
</form>
</body>
</html>
使用JQuery傳送請求區域性重新整理頁面
資料交換格式:
json
xml
-
什麼是JSON
JSON(JavaScript Object Notation) 是一種輕量級的資料交換格式。它基於ECMAScript的一個子集。 JSON採用完全獨立於語言的文字格式,但是也使用了類似於C語言家族的習慣(包括C、C++、C#、Java、JavaScript、Perl、Python等)。這些特性使JSON成為理想的資料交換語言。 易於人閱讀和編寫,同時也易於機器解析和生成(一般用於提升網路傳輸速率)。
-
JSON格式
JSON物件
{ key1:value} {"username":"zhangsan","password":"123"}
JSON陣列
[{ key1:value},{ key1:value},{ key1:value}]
使用BootStrap開發一個響應式的頁面出來
需求分析
開發一套響應式頁面.讓他能夠在各種裝置上顯示正常,提升使用者體驗
技術分析
BootStap概述
-
什麼是BootStrap
-
BootStrap有什麼作用
- 提高開發人員的工作效率
-
什麼是響應式頁面
-
適應不同的解析度顯示不同樣式,提高使用者的體驗
-
-
BootStrap的中文網
-
下載BootStrap
-
BootStrap結構
- 全域性CSS
- bootStrap中已經定義好了一套CSS的樣式表
- 元件
- BootStrap定義的一套按鈕,導航條等元件
- JS外掛
- BootStrap定義了一套JS的外掛,這些外掛已經預設實現了很多種效果
- 全域性CSS
BootStrap的入門開發
- 引入相關的標頭檔案
<!-- 最新版本的 Bootstrap 核心 CSS 檔案 -->
<link rel="stylesheet" href="../css/bootstrap.css" />
<!--需要引入JQuery-->
<script type="text/javascript" src="../js/jquery-1.11.0.js" ></script>
<!-- 最新的 Bootstrap 核心 JavaScript 檔案 -->
<script type="text/javascript" src="../js/bootstrap.js" ></script>
<meta name="viewport" content="width=device-width, initial-scale=1">
- BootStrap的佈局容器
.container
類用於固定寬度並支援響應式佈局的容器。
<div class="container">
...
</div>
.container-fluid
類用於 100% 寬度,佔據全部視口(viewport)的容器。
<div class="container-fluid">
...
</div>
-
row
Bootstrap 柵格系統的工作原理:
- “行(row)”必須包含在
.container
(固定寬度)或.container-fluid
(100% 寬度)中,以便為其賦予合適的排列(aligment)和內補(padding)。 - 通過“行(row)”在水平方向建立一組“列(column)”。
- 你的內容應當放置於“列(column)”內,並且,只有“列(column)”可以作為行(row)”的直接子元素。
- 類似
.row
和.col-xs-4
這種預定義的類,可以用來快速建立柵格佈局。Bootstrap 原始碼中定義的 mixin 也可以用來建立語義化的佈局。 - 通過為“列(column)”設定
padding
屬性,從而建立列與列之間的間隔(gutter)。通過為.row
元素設定負值margin
從而抵消掉為.container
元素設定的padding
,也就間接為“行(row)”所包含的“列(column)”抵消掉了padding
- “行(row)”必須包含在
-
BootStrap的柵格系統
- 響應式設計: 這種設計依賴於CSS3中的媒體查詢
- 柵格樣式:
- 裝置解析度大於1200 使用lg樣式
- 裝置解析度大於992 < 1200 使用md樣式
- 裝置解析度大於768 < 992 使用sm樣式
- 裝置解析度小於768使用xs樣式
-
BootStrap的全域性CSS
- 定義了一套CSS
- 對頁面中的元素進行定義
- 列表元素,表單,按鈕,圖片…
- 定義了一套CSS
使用BootStrap佈局網站首頁
需求分析
請使用BootStrap對我們的首頁進行優化
技術分析
步驟分析
- 新建一個HTML頁面.引入bootStrap相關的js和CSS
- 定義一個整體的div, 將整體的div分成8個部分
- 完成沒部分的內容顯示
程式碼實現
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<!--
準備工作:
<meta name='viewport'>
1.匯入bootstrap css檔案
2.匯入JQuery
3.bootstrap.js
4.寫一個div class = container 支援響應式的佈局容器
-->
<link rel="stylesheet" href="../css/bootstrap.min.css">
<meta name="viewport" content="width=device-width, initial-scale=1">
<!--
jQuery檔案。務必在bootstrap.min.js 之前引入
-->
<script src="../js/jquery-1.11.0.js"></script>
<!-- 最新的 Bootstrap 核心 JavaScript 檔案 -->
<script src="../js/bootstrap.min.js"></script>
</head>
<body>
<div class="container">
<div class="row">
<div class="col-md-4">
<img src="../img/logo2.png" />
</div>
<div class="col-md-4 hidden-xs">
<img src="../img/header.png" />
</div>
<div class="col-md-4">
<a href="#">登入</a>
<a href="#">註冊</a>
<a href="#">購物車</a>
</div>
</div>
<!--選單-->
<div class="row">
<div class="col-md-12">
<nav class="navbar navbar-inverse" role="navigation">
<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">
<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="#">首頁</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="#">手機數碼</a>
</li>
<li>
<a href="#">鞋靴箱包</a>
</li>
<li>
<a href="#">電腦辦公</a>
</li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">所有分類 <span class="caret"></span></a>
<ul class="dropdown-menu" role="menu">
<li>
<a href="#">手機數碼</a>
</li>
<li>
<a href="#">鞋靴箱包</a>
</li>
<li>
<a href="#">電腦辦公</a>
</li>
<li class="divider"></li>
<li>
<a href="#">Separated link</a>
</li>
<li class="divider"></li>
<li>
<a href="#">One more separated link</a>
</li>
</ul>
</li>
</ul>
<form class="navbar-form navbar-right" role="search">
<div class="form-group">
<input type="text" class="form-control" placeholder="請輸入要搜尋的商品">
</div>
<button type="submit" class="btn btn-default">搜尋</button>
</form>
</div>
<!-- /.navbar-collapse -->
</div>
<!-- /.container-fluid -->
</nav>
</div>
</div>
<div>
<div id="carousel-example-generic" class="carousel slide" data-ride="carousel">
<!-- Indicators -->