【前端框架之Bootstrap01】我們一起來看看這個家伙是什么


前言

我感覺自己的眼界沒有打開,關注的東西前前后后都是那么幾樣,誠然不精一門何以精前端,但是對前端新技術的關注還是需要的,就拿我們今天要說到的。

bootstrap,說實話,知道的或者說用過的人肯定不多,認為自己入門了但是沒聽過的bootstrap朋友可以留個言,我們來統計一下,若是人數眾多的話,我們應該欣慰國內前端的專注原生或者感嘆國內朋友的閉塞呢?

扯遠了,我也是最近才接觸到這塊,也不說令人汗顏之內的話,不懂學就完了,我不懂的可多了,這里就來簡單看看吧。

什么是bootstrap

http://www.bootcss.com/

bootstrap是一套現成的CSS樣式集合(做得還是很友好的)。是兩個推特的員工干出來的。。。

他內置的樣式很漂亮,而且很多。給人一種簡約而不簡單的感覺,而且經過twitter成千上億的使用,可見其強大。

bootstrap特別適合那種沒有設計師的團隊(甚至說沒有前端的團隊),可以快速的出一個網頁(我原來一個搞信息安全的同學非常鄙視我,我說系統,他非要說我干的是網頁,我說網站他也說網頁,那就網頁吧)。

因為bootstrap是基於jquery的,所以又有好事者給他加了很多插件,所以他變得很火了。

bootstrap是基於Less的CSS預處理技術,於是我們可能也不知道LESS呢:

Less CSS預處理技術

LESS 是一個開源的樣式語言,受到 Sass 的影響。
嚴格來說,LESS 是一個嵌套的元語言,符合語法規范的 CSS 語句也是符合規范的 Less 代碼。

來個簡單的例子:

  /* LESS*/

@color: #4D926F;

#header {
  color: @color;
}
h2 {
  color: @color;
}

/* 生成的 CSS */

#header {
  color: #4D926F;
}
h2 {
  color: #4D926F;
}

再來一個例子:

/* LESS*/

.rounded-corners (@radius: 5px) {
  border-radius: @radius;
  -webkit-border-radius: @radius;
  -moz-border-radius: @radius;
}

#header {
  .rounded-corners;
}
#footer {
  .rounded-corners(10px);
}

/* 生成的 CSS */

#header {
  border-radius: 5px;
  -webkit-border-radius: 5px;
  -moz-border-radius: 5px;
}
#footer {
  border-radius: 10px;
  -webkit-border-radius: 10px;
  -moz-border-radius: 10px;
}

他這樣對CSS3比較友好呢,可以少干很多事情的。

完了他還有點模塊化的東西:

/*LESS*/

#header {
  h1 {
    font-size: 26px;
    font-weight: bold;
  }
  p { font-size: 12px;
    a { text-decoration: none;
      &:hover { border-width: 1px }
    }
  }
}

/* 生成的 CSS */

#header h1 {
  font-size: 26px;
  font-weight: bold;
}
#header p {
  font-size: 12px;
}
#header p a {
  text-decoration: none;
}
#header p a:hover {
  border-width: 1px;
}

他讓我們的代碼看上去更加清晰了!是好是壞我這里還看不到,因為我也不熟悉呢。但是我認為若是效率上沒問題的話,沒准還真能用呢!至於他的須要編譯。無論是放在客戶端還是服務器端,都是一種額外的花銷所以。。。好了,我們回歸正題吧

使用與否?

人是一個排外的生物,程序員特別明顯!我也很明顯,所以我其實是抱着一種不太願意使用的態度在學習的。。至少我不是很願意用於我的項目,至少不願意用於我的第一個項目。

因為,他其實已經干了很多事情了,事實上可以減少很多前端的工作,但是有一個問題就是,一來便使用的話!

個人覺得:第一個項目便使用的話,不利於前端團隊的發展!

因為若是一個好的產品的話,在長達半年的過程中,前端團隊會形成許多自己的東西:

1 設計的風格

2 CSS的風格,很多的樣式(下拉菜單、導航、按鈕......)

3 jquery插件

但是一做項目就使用了的話,以后肯定會繼續推下去,我不知道會不會影響前端發展,我不知道會不會破壞原有的團隊風格。

就如一來就使用jquery和使用了原生js一兩年的人一樣,有沒有問題我這里說不好啦,我也才剛入門,這里就不討論了,繼續我們的話題。

初始化文件結構

 1 <!DOCTYPE html>
 2 <html xmlns="http://www.w3.org/1999/xhtml">
 3 <head>
 4     <title></title>
 5     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
 6     <link href="css/bootstrap.css" rel="stylesheet" type="text/css" />
 7     <link href="css/bootstrap-responsive.css" rel="stylesheet" type="text/css" />
 8 
 9 </head>
10 <body>
11 
12     <script src="js/jquery-1.7.1.js" type="text/javascript"></script>
13     <script src="js/bootstrap.js" type="text/javascript"></script>
14     <script  type="text/javascript">
15         $(document).ready(function () {
16 
17 
18         });
19     
20     </script>
21 </body>
22 </html>

這樣我們便可以使用bootstrap開發我們的網站啦!

基本樣式

我這里就很簡單的試試吧,先來個兩列布局了,因為我們后面會依賴他出一個實例.

 1 <!DOCTYPE html>
 2 <html xmlns="http://www.w3.org/1999/xhtml">
 3 <head>
 4     <title></title>
 5     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
 6     <link href="css/bootstrap.css" rel="stylesheet" type="text/css" />
 7     <link href="css/bootstrap-responsive.css" rel="stylesheet" type="text/css" />
 8     <style type="text/css">
 9         .main { background-color: #BBD8E9;  }
10         .aside { background-color: #DCEAF4;  }
11     </style>
12 </head>
13 <body>
14     <div class="container-fluid">
15         <div class="row-fluid">
16             <div class="span2 main">
17                 <!--Sidebar content-->
18                 dddddd
19             </div>
20             <div class="span10 aside">
21                 <!--Body content-->
22             </div>
23         </div>
24     </div>
25     <script src="js/jquery-1.7.1.js" type="text/javascript"></script>
26     <script src="js/bootstrap.js" type="text/javascript"></script>
27     <script type="text/javascript">
28         $(document).ready(function () {
29 
30 
31         });
32     
33     </script>
34 </body>
35 </html>

 

我們看到,我們若是要以這個布局實現我們的博客頁,估計還要改一點東西呢。

PS:我這里有個疑惑,我們布局的時候重要的要放到前面,但是使用這個柵格系統后,反而讓我感覺有點不好控制了呢。。新手、新手

一些樣式:

PS:其實官網的東西非常詳細了,大家自己去看吧,我都快成了抄襲啦

實戰演練·我的博客頁

光說不練假把式,搞了這么多,我們就來試試,我們能不能使用他做出我們的博客頁吧。我的博客頁是左右布局的,於是我來操作,因為他那個布局我沒搞透,我們先來看看導航。

導航

 1 <!DOCTYPE html>
 2 <html xmlns="http://www.w3.org/1999/xhtml">
 3 <head>
 4     <title></title>
 5     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
 6     <link href="css/bootstrap.css" rel="stylesheet" type="text/css" />
 7     <link href="css/bootstrap-responsive.css" rel="stylesheet" type="text/css" />
 8     <style type="text/css">
 9         .mystats { float: right; line-height: 20px; color: #555555; padding: 10px 5px; }
10         
11         .main { background-color: #BBD8E9; }
12         .aside { background-color: #DCEAF4; }
13     </style>
14 </head>
15 <body>
16     <div class="header">
17         <div class="navbar">
18             <div class="navbar-inner">
19                 <ul class="nav ">
20                     <li><a href="#">博客園</a> </li>
21                     <li class="active"><a href="#">首頁</a></li>
22                     <li><a href="#">博問</a></li>
23                     <li><a href="#">閃存</a></li>
24                     <li><a href="#">新隨筆</a></li>
25                     <li><a href="#">聯系</a></li>
26                     <li><a href="#">訂閱</a></li>
27                     <li><a href="#">管理</a></li>
28                 </ul>
29                 <div class="mystats">
30                     <!--done-->
31                     隨筆-64&nbsp; 評論-844&nbsp; 文章-0&nbsp; trackbacks-0
32                 </div>
33             </div>
34         </div>
35     </div>
36     <script src="js/jquery-1.7.1.js" type="text/javascript"></script>
37     <script src="js/bootstrap.js" type="text/javascript"></script>
38     <script type="text/javascript">
39         $(document).ready(function () {
40 
41 
42         });
43     
44     </script>
45 </body>
46 </html>

說實話,我感覺有點不對!應該是我沒有用好吧,沒有按照我想象的方式排列,於是我們現在做一點改變,看看他的css代碼。

那撒,他原來的代碼洋洋灑灑幾千行,我這里還是自己改下吧:

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title></title>
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <link href="css/bootstrap.css" rel="stylesheet" type="text/css" />
    <link href="css/bootstrap-responsive.css" rel="stylesheet" type="text/css" />
    <style type="text/css">
        .mystats { float: right; line-height: 20px; color: #555555; padding: 10px 5px; }
        #btn-navbar { display: none; }
        
        
        .main { background-color: #BBD8E9; }
        .aside { background-color: #DCEAF4; }
        
        
        
        @media (min-width: 590px) and (max-width: 838px) {
            .navbar .nav { float: none; }
        
        }
        
        @media (min-width: 1px) and (max-width: 590px) {
            #btn-navbar { display: block; float: none; width: 100%; margin: 0; }
            .navbar-inner { padding: 0; min-height: 0; }
             .mystats { display: none; }
            .navbar-inner .nav { float: none; margin: 0; display: none; }
            .open .nav { display: block; }
            .navbar .nav > li { float: none; }
        }
    </style>
</head>
<body>
    <div class="header">
        <div class="navbar">
            <div class="navbar-inner">
                <button data-target=".nav-collapse" data-toggle="collapse" class="btn btn-navbar collapsed"
                    id="btn-navbar" type="button">
                    <span class="icon-bar"></span><span class="icon-bar"></span><span class="icon-bar">
                    </span>
                </button>
                <ul class="nav " id="nav">
                    <li><a href="#">博客園</a> </li>
                    <li class="active"><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="#">訂閱</a></li>
                    <li><a href="#">管理</a></li>
                </ul>
                <div class="mystats">
                    <!--done-->
                    隨筆-64&nbsp; 評論-844&nbsp; 文章-0&nbsp; trackbacks-0
                </div>
            </div>

            ddfdfdffd
        </div>
    </div>
    <script src="js/jquery-1.7.1.js" type="text/javascript"></script>
    <script src="js/bootstrap.js" type="text/javascript"></script>
    <script type="text/javascript">
        $(document).ready(function () {
            var btnNavbar = $('#btn-navbar');
            btnNavbar.click(function () {
                var el = $(this);
                var p = el.parent();

                var nav = $('#nav');
                if (p.hasClass('open')) {
                    p.removeClass('open');

                } else {
                    p.addClass('open');
                }
            });
        });
    
    </script>
</body>
</html>
View Code

 

我敢肯定是我的問題。。。因為這邊完全沒有按照我的套路出牌呢。。。我們簡單看看這里的彈出導航,彈開時候整個頁面會下拉,這不是我想要的,但是改為absolute后改動又太大,所以還是算了吧,暫時這樣了,我們繼續。

結語

今天我們暫時到這里吧,因為我現在對很多東西還真不了解,我再看看多學習下,下次再繼續吧。


免責聲明!

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



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