1. 程式人生 > >BootStrap基礎知識總結

BootStrap基礎知識總結

文章目錄

目標

掌握什麼是響應式及響應式的原理

掌握BootStrap的柵格系統

瞭解BootStrap的其他元件及JS控制元件

表單校驗案例

技術分析

  • trigger : 觸發事件,但是會執行類似瀏覽將游標移到輸入框內的這種瀏覽器預設行為
  • triggerHandler : 僅僅只會觸發事件所對應的函式
  • is()

步驟分析

  1. 首先給必填項,新增尾部新增一個小紅點
  2. 獲取使用者輸入的資訊,做相應的校驗
  3. 事件: 獲得焦點, 失去焦點, 按鍵擡起
  4. 表單提交的事件

程式碼實現

<!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、PerlPython等)。這些特性使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的外掛,這些外掛已經預設實現了很多種效果
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

  • BootStrap的柵格系統

    • 響應式設計: 這種設計依賴於CSS3中的媒體查詢
    • 柵格樣式:
      • 裝置解析度大於1200 使用lg樣式
      • 裝置解析度大於992 < 1200 使用md樣式
      • 裝置解析度大於768 < 992 使用sm樣式
      • 裝置解析度小於768使用xs樣式
  • BootStrap的全域性CSS

    • 定義了一套CSS
      • 對頁面中的元素進行定義
      • 列表元素,表單,按鈕,圖片…

使用BootStrap佈局網站首頁

需求分析

請使用BootStrap對我們的首頁進行優化

技術分析

步驟分析

  1. 新建一個HTML頁面.引入bootStrap相關的js和CSS
  2. 定義一個整體的div, 將整體的div分成8個部分
  3. 完成沒部分的內容顯示

程式碼實現

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