使用Bootstrap 3開發響應式網站實踐01,前期準備、導航區域等

「使用Bootstrap 3開發響應式網站實踐」系列,將使用Bootstrap 3.2製做一個自適應網站,不管是在電腦、平板,仍是手機上,都呈現比較好的效果。在電腦瀏覽器上的最終效果以下:css

30

 

在手機上的呈現效果以下:html

29

 

本篇主要包括:jquery

前期準備
引入Bootstrap,jQuey文件等
搭建頁面主體結構
導航區域
bootstrap

 

□ 前期準備瀏覽器

→使用Visual Studio 2012建立一個空的ASP.NET網站
→把下載下來的Bootstrap 3中的css,fonts,js文件夾拷貝到網站根目錄下
→在網站根目錄下建立images文件夾,用來存放全部的圖片
→使用NuGet安裝最新版的jQuery
→在網站根目錄下建立index.html文件
1
ide

 

□ 引入Bootstrap,jQuey文件等佈局

→在css文件夾下建立site.css
→在js文件夾下建立site.js
→把Bootstrap、jQuery等引入index.html文件中
網站

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <title></title>
    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1,user-scalable=no">
    <link href="css/bootstrap.min.css" rel="stylesheet" />
    <link href="css/site.css" rel="stylesheet" />
</head>
<body>
    
    <script src="Scripts/jquery-2.1.1.min.js"></script>
    <script src="js/bootstrap.min.js"></script>
    <script src="js/site.js"></script>
</body>
</html>

<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1,user-scalable=no">
這時響應式佈局的一個標籤,以上表示瀏覽器的寬度和屏幕寬度保持一致。好比,屏幕寬度爲320px,那麼瀏覽器的寬度自適應爲320px。若是網站不是針對響應式開發的,就沒有必要使用這個標籤。其它屬性包括:
ui

○ width: 視覺寬度
○ device-width: 屏幕寬度
○ heigh: 視覺高度
○ device-height: 屏幕高度
○ initial-scale: 初始放大比例,設置爲1.0時不放大
○ minimum-scale: 最小的放大比例,設置爲1.0時不放大
○ maximum-scale: 最大的放大比例,設置爲1.0時不放大
○ user-scalable: 是否容許放大,設置爲no時不容許放大
spa


 
另外,須要在site.css設置以下:

 @-ms-viewport{
    width: device-width;
}

 

□ 搭建頁面主體結構

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <title></title>
    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1,user-scalable=no">
    <link href="css/bootstrap.min.css" rel="stylesheet" />
    <link href="css/site.css" rel="stylesheet" />
</head>
<body>
    <div class="container" id="main">
        <div class="navbar navbar-fixed-top">
            
        </div><!--導航區域結束-->
        
        <div class="carousel" id="myCarousel">
            
        </div><!--圖片展現區域結束-->
        
        <div class="row" id="bigCallout">
            
        </div><!--標註區域結束-->
        
        <div class="row" id="featureHeading">
            
        </div><!--主要功能標題區域結束-->
        
        <div class="row" id="features">
            
        </div><!--主要功能區域結束-->
        
        <div class="row" id="moreInfo">
            
        </div><!--更多信息區域結束-->
        
        <div class="row" id="moreProducts">
            
        </div><!--更多產品區域結束-->
    </div><!--container結束-->
    
    <footer>
        
    </footer><!--頁腳結束-->
    <script src="Scripts/jquery-2.1.1.min.js"></script>
    <script src="js/bootstrap.min.js"></script>
    <script src="js/site.js"></script>
</body>
</html>

○ row屬性值:表明單獨一行,是Grid的父級元素。


□ 導航區域

→到http://bootswatch.com/下載Theme,並保存到網站根目錄下的css文件夾
→下載某個主題,命名爲simplex.bootstrap.min.css,並放到以下位置:

    <link href="css/bootstrap.min.css" rel="stylesheet" />
    <link href="css/simplex.bootstrap.min.css" rel="stylesheet" />
    <link href="css/site.css" rel="stylesheet" />

→導航區域html以下: 
        <div class="navbar navbar-fixed-top">
            <div class="container">
                <a class="navbar-brand" href="/"><img src="images/logo.gif" alt="logo"/></a>
                
                <div class="navbar-collapse collapse">
                    <ul class="nav navbar-nav">
                        <li class="active"><a href="#">主頁</a></li>
                        <li><a href="#">服務</a></li>
                    </ul>
                    
                    <form class="navbar-form pull-left">
                        <input type="text" id="searchInput" class="form-control" placeholder="搜索"/>
                        <button type="submit" class="btn btn-default"><span class="glyphicon glyphicon-search"></span></button>
                    </form>
                    
                    <ul class="nav navbar-nav pull-right">
                        <li><a href="#"><span class="glyphicon glyphicon-user"></span>設置</a></li>
                    </ul>
                </div><!--nav-collapse結束-->
            </div><!--container結束-->
        </div><!--導航區域結束-->

○ navbar屬性值:導航區域、導航條
○ navbar-fixed-top屬性值:把導航區域固定在頁面頂部
○ 把導航區域的全部元素放在一個<div class="container">中
○ navbar-brand屬性值:通常應用在網站logo上
○ navbar-collapse和collapse屬性值:是爲響應式設計的,當但願一塊區域在頁面寬度縮小到必定程度時本身適應,就把該塊區域包裹在<div class="navbar-collapse collapse">中
○ nav和navbar-nav屬性值:用在ul上,能夠把a標籤加入到導航區域
○ navbar-form屬性值:用在form上,能夠把form標籤加入到導航區域
○ pull-left屬性值:漂浮到左邊
○ form-control屬性值:用在表單元素上
○ glyphicon和glyphicon-search屬性值:用在span上,顯示Icon

 

當頁面足夠寬的時候,顯示<div class="navbar-collapse collapse">包裹區域。

2

 

當頁面寬度縮小到必定程度,<div class="navbar-collapse collapse">包裹區域被隱藏。

3

 

把以上ul中<li><a href="#">服務</a></li>改爲下拉菜單。

                    <ul class="nav navbar-nav">
                        <li class="active"><a href="#">主頁</a></li>
                        <li class="dropdown">
                            <a href="#" class="dropdown-toggle" data-toggle="dropdown">服務<strong class="caret"></strong></a>
                            <ul class="dropdown-menu">
                                <li><a href="#">足球</a></li>
                                <li><a href="#">籃球</a></li>
                                <li><a href="#">乒乓球</a></li>
                                <li class="divider"></li>
                                <li class="dropdown-header">更多服務...</li>
                                <li><a href="#">建立水球</a></li>
                                <li><a href="#">建立冰球</a></li>
                            </ul>
                        </li>
                    </ul>

4

○ dropdown屬性值:這裏被應用到li上,這樣li變成下拉菜單
○ data-toggle屬性:這裏屬性值爲dropdown,表示使用dropdown插件
○ dropdown-toggle屬性值:這裏了被應用到a上,點擊a顯示,再點擊消失
○ caret屬性值:這裏被應用到strong,表示向下箭頭
○ dropdown的選項是一個ul
○ dropdown-menu屬性值:這裏被應用到ul上,表示dropdown的選項
○ divider屬性值:這裏被應用到li上,表示分隔線
○ dropdown-header屬性值:這裏被應用到li上,該項沒法被選中

 

再把以上"個人帳戶"有關ul中的li改爲下拉菜單。

                    <ul class="nav navbar-nav pull-right">
                        <li class="dropdown">
                            <a href="#" class="dropdown-toggle" data-toggle="dropdown"><span class="glyphicon glyphicon-user"></span>個人帳戶<strong class="caret"></strong></a>
                            <ul class="dropdown-menu">
                                <li><a href="#"><span class="glyphicon glyphicon-wrench"></span>設置</a></li>
                                <li><a href="#"><span class="glyphicon glyphicon-refresh"></span>我的信息</a></li>
                                <li><a href="#"><span class="glyphicon glyphicon-briefcase"></span>帳單</a></li>
                                <li class="divider"></li>
                                <li><a href="#"><span class="glyphicon glyphicon-off"></span>退出</a></li>
                            </ul>
                        </li>
                    </ul>

5

 

但,如今還有一個問題:當頁面寬度縮小到必定程度,<div class="navbar-collapse collapse">包裹區域被隱藏。咱們但願在隱藏的時候,出現一個圖片,點擊它再次出現被隱藏部分。

在導航部分添加一個按鈕:

                <button type="button" class="navbar-toggle" data-target="#c" data-toggle="collapse" style="background-color: #e3e3e3;color: black">
                    顯示/隱藏
                </button>

6

○ navbar-toggle屬性值:這裏被應用到button,當點擊button出現隱藏部分   
○ data-target屬性:這裏指向隱藏/顯示的div
○ data-toggle屬性:引用collapse插件

 

最後,導航部分的完整代碼爲:

        <div class="navbar navbar-fixed-top">
            <div class="container">
                
                <button type="button" class="navbar-toggle" data-target="#c" data-toggle="collapse" style="background-color: #e3e3e3;color: black">
                    顯示/隱藏
                </button>
                <a class="navbar-brand" href="/"><img src="images/logo.gif" alt="logo"/></a>
                
                <div class="navbar-collapse collapse" id="c">
                    <ul class="nav navbar-nav">
                        <li class="active"><a href="#">主頁</a></li>
                        <li class="dropdown">
                            <a href="#" class="dropdown-toggle" data-toggle="dropdown">服務<strong class="caret"></strong></a>
                            <ul class="dropdown-menu">
                                <li><a href="#">足球</a></li>
                                <li><a href="#">籃球</a></li>
                                <li><a href="#">乒乓球</a></li>
                                <li class="divider"></li>
                                <li class="dropdown-header">更多服務...</li>
                                <li><a href="#">建立水球</a></li>
                                <li><a href="#">建立冰球</a></li>
                            </ul>
                        </li>
                    </ul>
                    
                    <form class="navbar-form pull-left">
                        <input type="text" id="searchInput" class="form-control" placeholder="搜索"/>
                        <button type="submit" class="btn btn-default"><span class="glyphicon glyphicon-search"></span></button>
                    </form>
                    <ul class="nav navbar-nav pull-right">
                        <li class="dropdown">
                            <a href="#" class="dropdown-toggle" data-toggle="dropdown"><span class="glyphicon glyphicon-user"></span>個人帳戶<strong class="caret"></strong></a>
                            <ul class="dropdown-menu">
                                <li><a href="#"><span class="glyphicon glyphicon-wrench"></span>設置</a></li>
                                <li><a href="#"><span class="glyphicon glyphicon-refresh"></span>我的信息</a></li>
                                <li><a href="#"><span class="glyphicon glyphicon-briefcase"></span>帳單</a></li>
                                <li class="divider"></li>
                                <li><a href="#"><span class="glyphicon glyphicon-off"></span>退出</a></li>
                            </ul>
                        </li>
                    </ul>
                </div><!--nav-collapse結束-->
            </div><!--container結束-->
        </div><!--導航區域結束-->    


參考資料:
Code a Responsive Website with Bootstrap 3 --by Brad Hussey
http://getbootstrap.com/
http://bootswatch.com/
http://www.tutorialspoint.com/

 

「使用Bootstrap 3開發響應式網站實踐」系列包括:

使用Bootstrap 3開發響應式網站實踐01,前期準備、導航區域等

使用Bootstrap 3開發響應式網站實踐02,輪播

使用Bootstrap 3開發響應式網站實踐03,輪播下方的內容排版

使用Bootstrap 3開發響應式網站實踐04,使用Panels展現內容

使用Bootstrap 3開發響應式網站實踐05,使用Tab、Modal、Form展現內容,使用Popover、Tooltip展現提示信息

使用Bootstrap 3開發響應式網站實踐06,使用ListGroup、Thumbnails展現內容

使用Bootstrap 3開發響應式網站實踐07,頁腳

相關文章
相關標籤/搜索