旺財速啃H5框架之Bootstrap(三)


好多天沒有寫了,繼續走起

在上一篇<<旺財速啃H5框架之Bootstrap(二)>>中已經把CSS引入到頁面中,接下來開始寫頁面。

首先有些問題要先處理了,問什么你要學bootstrap? 流行?寫網頁快?還是其它什么的?說實話,如果寫頁面很熟練的人(牛人),根本不會用任何框架寫,為什么呢,它們太臃腫了,誰寫一個頁面能把它所有的CSS都應該用上,所有的類都定義上呢?所以很多代碼對於頁面來說都是多余的,還好上線后,引入的都是資源庫,如果你有代碼精簡強迫症,那估計你要重寫(覆蓋)一些東西了(注明:其實我大部分時間都在搞后台,前台也只是略懂,高手勿噴,有講得不對的地方,大膽指正,虛心學習。)

什么是自適應?

我相信這也是你的目的,要做一個自適應的網站,手機(微小設備)、平板(小設備)、一般電腦(中型設備)、大顯示器(大型設置)等都能很好的顯示,現在一般都是如下兩種方式

第一種:不同設備各一套

第一想到的是麻煩,沒辦法,像有的網站(比如商城),網站跟手機顯示的樣式或內容有很大區別,做一套?行嗎?... 想到這里,你肯定很只能屈服了,好吧,這種我不多說。

第二種:所有設備全一套

這種你肯定看到就高興了,但這種網站要看頁面數據來,不是所有類型的網站都適合,現在CMS系統這樣做的比較多。

想到是自適應,所先在寫CSS容器的時候不能把寬度固定死,那怎么辦?肯定百分比呀。

我怎么覺得廢話有點多了,打了這么多字....開干,這里肯定只說第二種情況的

做一個自適應的導航,直接看代碼:

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>Bootstrap 實例 - 響應式的導航欄</title>
    <meta name="viewport" content="width=device-width,minimum-scale=1.0,maximum-scale=1.0"/>
    <link rel="stylesheet" href="http://static.d8jd.com/libs/bootstrap/3.3.7/css/bootstrap.min.css">
    <script src="http://apps.bdimg.com/libs/jquery/2.1.1/jquery.min.js"></script>
    <script src="http://apps.bdimg.com/libs/bootstrap/3.3.4/js/bootstrap.min.js"></script>
</head>
<body>
<nav class="navbar navbar-default" role="navigation">
    <div class="container-fluid">
        <div class="navbar-header">
            <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#example-navbar-collapse">
                <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 active" href="javascript:;">教程</a>
        </div>
        <div class="collapse navbar-collapse" id="example-navbar-collapse">
            <ul class="nav navbar-nav">
                <li class="active"><a href="javascript:;">iOS</a></li>
                <li><a href="javascript:;">SVN</a></li>
                <li class="dropdown">
                    <a href="javascript:;"class="dropdown-toggle"data-toggle="dropdown">Java<b class="caret"></b></a>
                    <ul class="dropdown-menu">
                        <li><a href="javascript:;">jmeter</a></li>
                        <li><a href="javascript:;">EJB</a></li>
                        <li><a href="javascript:;">Jasper Report</a></li>
                        <li class="divider"></li>
                        <li><a href="javascript:;">分離的鏈接</a></li>
                        <li class="divider"></li>
                        <li><a href="javascript:;">另一個分離的鏈接</a></li>
                    </ul>
                </li>
            </ul>
        </div>
    </div>
</nav>
</body>
</html>

查看效果,《猛點這里

說明:

Nav標簽定義導航,role="navigation" 告訴瀏覽器這是一個導航容器。然后在里面定義一個container-fluid,名義上為不固定(會變化)容器,1411行代碼:

.container-fluid {
  padding-right: 15px;
  padding-left: 15px;
  margin-right: auto;
  margin-left: auto;
}

只定義了內邊距,外邊距自動,說明它的寬度是父容器的100%,自然會隨瀏覽器窗口大小變化而變化了。

縮小窗口看看效果:

左邊欄目圖標縮小到一定大小后就會顯示,看關鍵代碼4022行:

@media (min-width: 768px) {
  .navbar-toggle {
    display: none;
  }
}

如果它的寬度大於768就隱藏了,反之顯示。

點擊圖標顯示下拉子導航功能,這個當然是js的效果了。

 

澄清一下:自適應其實就是在改變瀏覽器(設備)大小的情況下,應用不同的CSS樣式,把范圍大的寫上面,特殊的寫下面,后面的樣式覆蓋前面的,看CSS源碼里面也有大量的層級關系的定義(比如.navbar-nav .open .dropdown-menu),這就意味着dropdown-menu類父級里面必須得有open類,open父級里面必須得有navbar-nav才行,要不然並卵。也就意味着很多寫法要按要求來。

 

上面的案例去看一下它的應用樣式,不是好多呀,看得頭都暈,哈哈,這就是框架,把不同的設備考慮進去了,自然代碼就多啦。

 

有沒有人想到說麻煩,自己寫得了,對呀,高手都是自己寫的~~~,但框架那時給我們的好處就只體現在速度上了,寫網頁快。

 

回頭我有空從0寫一個自適應的CSS,只寫部分,讓某些童鞋知道是怎么回事就OK~~

 

再來一案例(固定到頂部的導航欄):

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>Bootstrap 實例 - 固定到頂部</title>
    <meta name="viewport" content="width=device-width,minimum-scale=1.0,maximum-scale=1.0"/>
    <link rel="stylesheet" href="http://static.d8jd.com/libs/bootstrap/3.3.7/css/bootstrap.min.css">
    <script src="http://apps.bdimg.com/libs/jquery/2.1.1/jquery.min.js"></script>
    <script src="http://apps.bdimg.com/libs/bootstrap/3.3.4/js/bootstrap.min.js"></script>
</head>
<body>
<nav class="navbar navbar-default navbar-fixed-top" role="navigation">
    <div class="container-fluid">
        <div class="navbar-header">
            <a class="navbar-brand" href="#">教程</a>
        </div>
    <div>
    <ul class="nav navbar-nav">
      <li class="active"><a href="#">iOS</a></li>
      <li><a href="#">SVN</a></li>
      <li class="dropdown">
        <a href="#" class="dropdown-toggle" data-toggle="dropdown">
          Java <b class="caret"></b>
        </a>
        <ul class="dropdown-menu">
          <li><a href="#">jmeter</a></li>
          <li><a href="#">EJB</a></li>
          <li><a href="#">Jasper Report</a></li>
          <li class="divider"></li>
          <li><a href="#">分離的鏈接</a></li>
          <li class="divider"></li>
          <li><a href="#">另一個分離的鏈接</a></li>
        </ul>
      </li>
    </ul>
  </div>
  </div>
</nav>
</body>
</html>

查詢效果:《猛點這里

固定功能關鍵代碼3956行:

.navbar-fixed-top,
.navbar-fixed-bottom {
  position: fixed;
  right: 0;
  left: 0;
  z-index: 1030;
}

position: fixed;      // 相對瀏覽器進行絕對定位

如果你對定位不熟悉,點這里看看。

 

Bootstrap框架導航欄就寫這么點,想看更多詳細的導航欄效果,請看:http://noob.d8jd.com/noob/5/123.html

 

導航欄有了,接下來的部分我將介紹如何寫主體部分。

 

有問題大膽留言,虛心學習~~~


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM