Web-第五天 BootStrap學(xué)習(xí)
今日內(nèi)容介紹 使用bootstrap重寫首頁 今日內(nèi)容學(xué)習(xí)目標(biāo) 學(xué)會通過官方提供demo實例,完成自己需要的功能。 能夠從已有html文檔中,找到將要修改的位置,并進(jìn)行簡單調(diào)整 將使用Bootstrap重寫首頁,整個案例中將使用到Bootstrap各種模塊,為了方便編程,將采用拆分的原則,各個模塊單獨(dú)編寫,最后組合。 Bootstrap,基于 HTML、CSS、JAVASCRIPT 的前端框架(半成品)。其預(yù)定義一套CSS樣式和與樣式對應(yīng)的jQuery代碼,我們只需要提供固定HTML結(jié)構(gòu),添加固定的class樣式,就可以完成指定效果的實現(xiàn)。 Bootstrap在jQuery的基礎(chǔ)工作,可以理解Bootstrap就是jQuery的一個插件。 Bootstrap 使得 Web 開發(fā)更加快捷,代碼優(yōu)雅,美觀大方。 由Twitter 公司的設(shè)計師Mark Otto和Jacob Thornton合作開發(fā)。 Bootstrap基礎(chǔ)入門使用的都是自帶CSS樣式,高級開發(fā)中需要使用HTML5、CSS3、動態(tài)CSS語言Less 進(jìn)行自定義開發(fā),JavaEE課程中學(xué)習(xí)時“基礎(chǔ)入門”。 國內(nèi)一些移動開發(fā)者較為熟悉的框架,如WeX5前端開源框架等,也是基于Bootstrap源碼進(jìn)行性能優(yōu)化而來 中文官網(wǎng):http://www.bootcss.com/ 響應(yīng)式布局:一個網(wǎng)站能夠兼容多個終端(手機(jī)、iPad等),而不需要為每個終端做一個特定的版本。此概念是為解決移動互聯(lián)網(wǎng)瀏覽而誕生的。 響應(yīng)式布局可以為不同終端的用戶提供更加舒適的界面和更好的用戶體驗,而且隨著目前大屏幕移動設(shè)備的普及,用“大勢所趨”來形容也不為過。隨著越來越多的設(shè)計師采用這個技術(shù),我們不僅看到很多的創(chuàng)新,還看到了一些成形的模式。 Bootstrap就是響應(yīng)式布局最成功的實現(xiàn),為了兼容不同的瀏覽器采用jQuery,為了適配不同的終端采用CSS3 Media Query (媒體查詢) 中文官網(wǎng)地址:http://d.bootcss.com/bootstrap-3.3.5.zip GIT地址:https://github.com/twbs/bootstrap/archive/v3.3.6.zipBootstrap基礎(chǔ)入門
第1章 案例:重寫首頁
1.1 案例介紹
1.2 相關(guān)技術(shù)介紹
1.2.1 BootStrap概述
1.2.1.1 什么是BootStrap
1.2.1.2 什么是響應(yīng)式布局
1.2.2 環(huán)境搭建
1.2.2.1 下載
1.2.2.2 目錄結(jié)構(gòu)
發(fā)布版,及開始使用到的Bootstrap內(nèi)容結(jié)構(gòu)
<!DOCTYPE html> <!-- HTML5 約束(固定值)-->
<html> <!-- 聲明語言,建議編輯-->
<head>
<!-- 響應(yīng)式開發(fā)必須使用,且必須在<head>前三行 -->
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width,initial-scale=1" />
<title>Bootstrap 模板</title>
<!-- Bootstrap預(yù)定義的CSS樣式、jQuery核心類庫、Bootstrap類庫-->
<link href="../lib/bootstrap/css/bootstrap.min.css" rel="stylesheet">
<script src="../lib/jquery/jquery-1.11.0.js"></script>
<script src="../lib/bootstrap/js/bootstrap.min.js"></script>
</head>
<body>
<h1>你好,世界!</h1>
</body>
</html>
參考文檔: 起步/基本模板,http://v3.bootcss.com/getting-started/#template
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<!--此屬性為文檔兼容(compatible)模式聲明,表示使用IE瀏覽器的最新渲染模式-->
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<!--
視口:用于設(shè)置移動瀏覽器顯示效果。
視口的作用:在移動瀏覽器中,當(dāng)頁面寬度超出設(shè)備(device),瀏覽器內(nèi)部虛擬的一個頁面容器,將頁面容器縮放到設(shè)備這么大,然后展示
取值:
width=device-width, 視口的寬度,大多手機(jī)瀏覽器視口的寬度是980
device-width 表示采用設(shè)備的寬度
initial-scale=1 初始化縮放級別,取值:1-5
minimum-scale=1 最小縮放級別
maximum-scale=1 最大縮放級別
user-scalable=no 禁用縮放
如果設(shè)置“user-scalable=no”,則“minimum-scale”和“maximum-scale”無效
下面實例表示的意思:
根據(jù)設(shè)置確定視口寬度,初始化的縮放比例是2.5,最小縮放比例1.5,最大縮放比例為3,允許在移動設(shè)置縮放
常用值:
<meta name="viewport" content="width=device-width, initial-scale=1">
-->
<meta name="viewport" content="width=device-width,initial-scale=2.5,minimum-scale=1.5,maximum-scale=3,user-scalable=yes" />
<!-- 上述3個meta標(biāo)簽*必須*放在最前面,任何其他內(nèi)容都*必須*跟隨其后! -->
<title>Bootstrap 模板</title>
<!-- Bootstrap -->
<link href="../lib/bootstrap/css/bootstrap.min.css" rel="stylesheet">
<!-- 使IE8支持HTML5元素特性和CSS3媒體查詢
注意:respond.js 不能本地運(yùn)行(file://),必須放置在web服務(wù)器(http:// ,暫時不用掌握)
-->
<!--[if lt IE 9]>
<script src="../lib/html5shiv/html5shiv.min.js"></script>
<script src="../lib/respond/respond.min.js"></script>
<![endif]-->
</head>
<body>
<!--正文從此處開始-->
<h1>你好,世界!</h1>
<!--前端開發(fā)中建議:網(wǎng)站優(yōu)化時,除了立即需要工作的js存放在header外,將大部分js文件放置在頁面的末尾-->
<!-- Bootstrap必須在jQuery的基礎(chǔ)上工作-->
<script src="../lib/jquery/jquery-1.11.0.js"></script>
<!-- Bootstrap核心包 -->
<script src="../lib/bootstrap/js/bootstrap.min.js"></script>
</body>
</html>
幫助手冊:全部CSS樣式/概覽/布局容器,http://v3.bootcss.com/css/#overview-container
Bootstrap 需要為頁面內(nèi)容和柵格系統(tǒng)包裹一個 .container 容器。提供的兩個容器如下:
.container 類用于固定寬度并支持響應(yīng)式布局的容器。
<div>
...
</div>
.container-fluid 類用于 100% 寬度,占據(jù)全部視口(viewport)的容器。
<div>
...
</div>
例如:
<!--居中顯示,兩邊有留白-->
<div style="border:1px solid #f00; height:100px;"></div>
<!--整個寬度-->
<div style="border:1px solid #f00; height:100px;"></div>
幫助手冊:全部CSS樣式/柵格系統(tǒng),http://v3.bootcss.com/css/#grid-options
Bootstrap 提供了一套響應(yīng)式、移動設(shè)備優(yōu)先的流式柵格系統(tǒng),隨著屏幕或視口(viewport)尺寸的增加,系統(tǒng)會自動分為最多12列。
柵格特點(diǎn)
“行(row)”必須包含在 .container (固定寬度)或 .container-fluid (100% 寬度)中
“列(column)” 可以作為行(row)”的直接子元素。
行使用的樣式“.row”,列使用樣式“col-*-*” 內(nèi)容應(yīng)當(dāng)放置于“列(column)”內(nèi)
列大于12時,將另起一行排列
柵格類適用于與屏幕寬度大于或等于分界點(diǎn)大小的設(shè)備,并且針對小屏幕設(shè)備覆蓋柵格類。
柵格參數(shù):“col-*-*”
large : lg
medium : md
small: sm : sm
x small : xs
例如:
<div>
<div>
<div class="col-md-3 col-xs-6">11</div>
<div class="col-md-3 col-xs-6">12</div>
<div class="col-md-3 col-xs-6">13</div>
<div class="col-md-3 col-xs-6">14</div>
</div>
<div>
<div class="col-md-3 col-xs-6">21</div>
<div class="col-md-3 col-xs-6">22</div>
<div class="col-md-3 col-xs-6">23</div>
<div class="col-md-3 col-xs-6">24</div>
</div>
</div>
幫助手冊:全部CSS樣式/按鈕/預(yù)定義樣式,http://v3.bootcss.com/css/#buttons-options
<button type="button" class="btn btn-default">(默認(rèn)樣式)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>
.btn-lg、.btn-sm 或 .btn-xs 可以設(shè)置按鈕的不同尺寸
.active類設(shè)置按鈕激活狀態(tài),其表現(xiàn)為被按壓下去(底色更深、邊框夜色更深、向內(nèi)投射陰影)
幫助手冊:全部CSS樣式/響應(yīng)式工具,http://v3.bootcss.com/css/#responsive-utilities-classes
例如:
<!--
設(shè)置one div,中等屏幕和超小屏幕顯示
設(shè)置two div,小屏幕和超大屏幕隱藏
-->
<div class="visible-md visible-xs">one</div>
<div class="hidden-sm hidden-lg">two</div>
<!--
1.整個topbar劃分比例:1:2:1
2.中間區(qū)域只在“大屏幕”和“中等屏幕”顯示
3.整個區(qū)域在“超小屏幕”英寸
-->
<div class="container topbar hidden-xs">
<div>
<div class="col-md-3 col-sm-6">
<img src="../img/logo2.png"/>
</div>
<div class="col-md-6 visible-lg visible-md">
<img src="../img/header.jpg"/>
</div>
<div class="col-md-3 col-sm-6">
<a href="" class="btn btn-danger btn-sm">免費(fèi)注冊</a>
<a href="" class="btn btn-link btn-sm">登錄</a>
<a href="" class="btn btn-link btn-sm">購物車</a>
</div>
</div>
</div>
Bootstrap 已經(jīng)提供了導(dǎo)航的完整實例,通常情況下,只需要進(jìn)行簡單修改即可。
幫助文檔:組件/導(dǎo)航條,http://v3.bootcss.com/components/#navbar
反色導(dǎo)航條:組件/導(dǎo)航條/反色的導(dǎo)航條,http://v3.bootcss.com/components/#navbar-inverted
<!--
1.大屏幕顯示所有分類
2.中等屏幕隱藏部分分類,提供“更多”
3.超小屏幕隱藏所有分類,以“漢堡按鈕”顯示
-->
<div>
<nav class="navbar navbar-default navbar-inverse">
<div>
<!-- Brand and toggle get grouped for better mobile display -->
<div>
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1" aria-expanded="false">
<span>漢堡按鈕</span>
<span></span>
<span></span>
<span></span>
</button>
<a 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><a href="#">電腦辦公 <span>(current)</span></a></li>
<li><a href="#">電腦辦公</a></li>
<li><a href="#">電腦辦公</a></li>
<li><a href="#">電腦辦公</a></li>
<li class="dropdown visible-sm">
<a href="#" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">更多<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>
<li role="separator"></li>
<li><a href="#">電腦辦公</a></li>
</ul>
</li>
</ul>
<form class="navbar-form navbar-left navbar-right" role="search">
<div>
<input type="text" placeholder="Search">
</div>
<button type="submit" class="btn btn-default hidden-xs">Submit</button>
</form>
</div><!-- /.navbar-collapse -->
</div><!-- /.container-fluid -->
</nav>
</div>
Bootstrap 已經(jīng)提供輪播圖的完整案例,此處我們也是進(jìn)行修改即可
參考文檔:JavaScript插件/ carousel,http://v3.bootcss.com/javascript/#carousel
<div>
<div id="index_carousel" class="carousel slide" data-ride="carousel">
<!-- 指示器 Indicators -->
<ol>
<li data-target="#index_carousel" data-slide-to="0"></li>
<li data-target="#index_carousel" data-slide-to="1"></li>
<li data-target="#index_carousel" data-slide-to="2"></li>
</ol>
<!-- 輪播展示
* item 表示一個圖片,與“指示器”li的個數(shù)保持一致
-->
<div role="listbox">
<div class="item active">
<img src="../img/1.jpg" alt="第一張圖">
</div>
<div>
<img src="../img/2.jpg" alt="第2張圖">
</div>
<div>
<img src="../img/3.jpg" alt="第3張圖">
</div>
</div>
<!-- 左右控制區(qū) Controls
* href 用于確定點(diǎn)擊觸發(fā)的那個輪播圖
-->
<a class="left carousel-control" href="#index_carousel" role="button" data-slide="prev">
<span class="glyphicon glyphicon-chevron-left" aria-hidden="true"></span>
<span>前一張</span>
</a>
<a class="right carousel-control" href="#index_carousel" role="button" data-slide="next">
<span class="glyphicon glyphicon-chevron-right" aria-hidden="true"></span>
<span>下一張</span>
</a>
</div>
</div>
“熱賣商品”模塊是對柵格系統(tǒng)的再應(yīng)用。我們將用已有的知識編寫出響應(yīng)式頁面。
<div>
<div>
<div>
<h2>熱賣商品 <img src="../img/title2.jpg"/></h2>
</div>
</div>
<div>
<div class="col-md-2 col-sm-4 hidden-xs">
<img src="../img/products/big01.jpg" style="width: 100%;"/>
</div>
<div class="col-md-10 col-sm-8">
<div class="col-md-6 col-sm-12" style="height:200px;">
<img src="../img/products/middle01.jpg" style="height: 100%;width:100%;"/>
</div>
<div class="col-md-2 product col-sm-4 col-xs-6">
<img src="../img/products/small01.jpg"/>
<p>電器</p>
<p style="font-size: #f00;">¥998</p>
</div>
<div class="col-md-2 product col-sm-4 col-xs-6">
<img src="../img/products/small02.jpg"/>
<p>電器</p>
<p style="font-size: #f00;">¥998</p>
</div>
<div class="col-md-2 product col-sm-4 col-xs-6">
<img src="../img/products/small03.jpg"/>
<p>電器</p>
<p style="font-size: #f00;">¥998</p>
</div>
<div class="col-md-2 product col-sm-4 col-xs-6">
<img src="../img/products/small04.jpg"/>
<p>電器</p>
<p style="font-size: #f00;">¥998</p>
</div>
<div class="col-md-2 product col-sm-4 col-xs-6">
<img src="../img/products/small05.jpg"/>
<p>電器</p>
<p style="font-size: #f00;">¥998</p>
</div>
<div class="col-md-2 product col-sm-4 col-xs-6">
<img src="../img/products/small06.jpg"/>
<p>電器</p>
<p style="font-size: #f00;">¥998</p>
</div>
<div class="col-md-2 product col-sm-4 col-xs-6">
<img src="../img/products/small07.jpg"/>
<p>電器</p>
<p style="font-size: #f00;">¥998</p>
</div>
<div class="col-md-2 product col-sm-4 col-xs-6">
<img src="../img/products/small08.jpg"/>
<p>電器</p>
<p style="font-size: #f00;">¥998</p>
</div>
<div class="col-md-2 product col-sm-4 col-xs-6">
<img src="../img/products/small09.jpg"/>
<p>電器</p>
<p style="font-size: #f00;">¥998</p>
</div>
</div>
</div>
</div>
通過分析,該模塊需要使用柵格劃分上下兩行,第二行的文字信息準(zhǔn)備使用“列表”,內(nèi)容的居中將提供兩種方案:文字居中,柵格列偏移
參考文檔-文本對齊:全局CSS樣式/排版/對齊,http://v3.bootcss.com/css/#type-alignment
參考文檔-列表:全局CSS樣式/排版/列表,http://v3.bootcss.com/css/#type-lists
參考文檔-柵格列偏移:全局CSS樣式/柵格系統(tǒng)/列偏移,http://v3.bootcss.com/css/#grid-offsetting
<div>
<div>
<img src="../img/footer.jpg" style="width:100%;"/>
</div>
<div>
<!--可以使用 text-center 文本居中-->
<div class="col-md-8 col-md-offset-3">
<ul>
<li><a href="#">關(guān)于我們</a></li>
<li><a href="#">聯(lián)系我們</a></li>
<li><a href="#">招賢納士</a></li>
<li><a href="#">法律聲明</a></li>
<li><a href="#">友情鏈接</a></li>
<li><a href="#">支付方式</a></li>
<li><a href="#">配送方式</a></li>
<li><a href="#">務(wù)聲明服</a></li>
<li><a href="#">廣告聲明</a></li>
</ul>
</div>
</div>
</div>
今日內(nèi)容介紹
使用bootstrap重寫首頁
今日內(nèi)容學(xué)習(xí)目標(biāo)
學(xué)會通過官方提供demo實例,完成自己需要的功能。
能夠從已有html文檔中,找到將要修改的位置,并進(jìn)行簡單調(diào)整
把bootstrap的標(biāo)簽復(fù)習(xí)一下等著案例練習(xí)
現(xiàn)在的網(wǎng)頁開發(fā)中,經(jīng)??吹綄⑺行畔⒕帉懺谝粋€頁面上,然后通過上下滾動翻頁進(jìn)行具體信息查詢,且存在一個提示信息,通知用戶當(dāng)前查看的位置。bootstrap提供相應(yīng)功能,稱為“滾動監(jiān)聽”。
幫助文檔--膠囊式標(biāo)簽頁:組件/導(dǎo)航/膠囊式標(biāo)簽頁, http://v3.bootcss.com/components/#nav-pills
幫助文檔-滾動監(jiān)聽:JavaScript插件/動態(tài)監(jiān)聽,http://v3.bootcss.com/javascript/#scrollspy
<style type="text/css">
.elevator{
width: 70px;
position: fixed;
top: 100px;
left: 5%;
}
.elevator > ul > li > a{
padding: 5px;
}
.elevator .one{
display: none;
}
.elevator .two{
display: block;
}
.elevator .active .one{
display: block;
}
.elevator .active .two{
display: none;
}
</style>
<body data-spy="scroll" data-target=".elevator">
<div id="f1" style="height: 400px;border:1px solid #f00;">1111</div>
<div id="f2" style="height: 400px;border:1px solid #f00;">222</div>
<div id="f3" style="height: 400px;border:1px solid #f00;">333</div>
<div id="f4" style="height: 400px;border:1px solid #f00;">4444</div>
<div class="container elevator">
<ul class="nav nav-pills nav-stacked">
<li role="presentation">
<a href="#f1"><p>導(dǎo)航</p><p>F1</p></a>
</li>
<li role="presentation"><a href="#f2"><p>輪播</p><p>F2</p></a></li>
<li role="presentation"><a href="#f3"><p>新品</p><p>F3</p></a></li>
<li role="presentation"><a href="#f4"><p>特色</p><p>F4</p></a></li>
</ul>
</div>
</body>
當(dāng)瀏覽器向下滾動到指定位置時,導(dǎo)航條懸浮在指定頁面最頂端,保證整個瀏覽過程,都可以看到導(dǎo)航條。Bootstrap提供實現(xiàn)功能是“affix 粘貼”
參考文檔:JavaScript插件/affix/用法,http://v3.bootcss.com/javascript/#via-data-attributes-3
<div class="container " data-spy="affix" data-offset-top="60">
導(dǎo)航條不在希望的位置
添加樣式
.header_fixed{
z-index: 1;
top: 0;
left: 0;
right: 0;
}
<div class="container header_fixed" data-spy="affix" data-offset-top="60">
聯(lián)系客服