目的
上一篇很簡單講了如何在Django中使用bootstrap。這一次,大概會說說自己使用bootstrap做Body的框架。
分析
一般的頁面分為頂部的導航條,內容和尾部鏈接、版權等信息。對于每個頁面來講,這三部分框架是基本相同的(內容有可能不同)。所以最基本的body就包括navbar(導航條)、content(正文)和footer(尾注)。
使用
接下來,依次看下上述三部分是如何搭建出來的。
**ps:bootstrap使用的是V3.3.5 **
1 navbar
在bootstrap網站導航條的組件里,在右側選擇導航條。將默認格式的導航條COPY到你的項目中,你就可以看到如官網的效果了(這就是開源讓我們站著巨人的肩膀上)。
幾點說明:
- 使用的標簽名是nav。當然你也可以使用div,不過官網已經告訴:如果想用div做導航條,需要加一個role屬性-navigation。
務必使用 <nav>
元素,或者,如果使用的是通用的 <div>
元素的話,務必為導航條設置 role="navigation"
屬性,這樣能夠讓使用輔助設備的用戶明確知道這是一個導航區域。
- 就拿nav來講(其他也一樣),第一層子元素通常需要一個div(基礎知識:div通常沒有什么含義,常作為邏輯劃分。div屬于塊狀元素。塊狀元素特別是每個都重起一行,可設置寬度高度)。在bootstrap中這個元素可用
container
或者container-fluid
,被稱為布局容器。區別在于:
container: 類用于固定寬度并支持響應式布局的容器。
container-fluid 類用于 100% 寬度,占據全部視口(viewport)的容器。
- 導航欄中如果直接用a標簽,會發現便簽貼得很近,
ul
的class設置為nav navbar-nav
。然后再在下一層使用li
和a
標簽。
*導航欄的左右可以設置navbar-left
或者navbar-right
來居左或者居右。
*導航欄的響應式效果:注意如果想比如設置下拉,如果按照bootstrap起步里講的,是沒有效果的。原因是沒有加jquery在bootstrap的前面,如果想用響應式效果需要在head中:
<script src="{% static 'js/jquery-2.2.3.min.js' %} "></script>
<script src="{% static 'js/bootstrap.min.js' %} "></script>
- 在很多網站可以看到:向下翻,導航條一直在頂部,這個是因為對
nav
標簽采用了.navbar-fixed-top
的樣式。但這樣也會造成一個問題,就是導航條和正文重疊。這個問題困擾了我好久,search的解決方案是,需要給body設定margin-top(** 基礎:盒子模型中重要的概念內填充是內容和標簽的距離; **):
body {
margin-top: 70px;
}
*著色,一般來講,如果沒有美感(我是屬于完全沒有美感的童鞋),所以我使用navbar-inverse修飾nav
標簽就好。
2 content正文
正文我做的比較簡單,左邊是side-bar(左邊欄),內容。
這部分很基本來講,就是用到bootstrap的柵欄,那就是div設置row
,然后再里面再分塊(即再使用row
修飾div):
bootstrap中是分12格,所以看你的情況,做分割。
3 尾注
尾注一樣可以用nav,只不過nav修飾的類是navbar-fixed-bottom
,同樣,就需要設置body的margin-bottom。
結語
大致的框架就這樣出來了,雖然簡單,但是麻雀雖小,五藏俱全。