Bootstrap3中預設定義頁面為12個邏輯列,我們需要通過定義元素占據的列的數量來定義頁面布局效果
所有布局列定義必須放入.row定義元素,并且.row定義元素必須定義到.container或者.container-fluid元素中,如下:
- <div class="container">
- <!-- 定義的布局必須添加到class定義row中 //-->
- <div class="row">
- <!-- 這裡定義具體的頁面布局 //-->
- </div>
- </div>
因為支援響應式設計,這裡我們可以針對不同裝置來定義不同的布局樣式,如下:
超小螢幕 手機 (<768px) 小螢幕 平闆 (≥768px) 中等螢幕 桌面顯示器 (≥992px) 大螢幕 大桌面顯示器 (≥1200px) 栅格系統行為 總是水準排列 開始是堆疊在一起的,當大于這些門檻值時将變為水準排列C .container 最大寬度 None (自動) 750px 970px 1170px 類字首 .col-xs- .col-sm- .col-md- .col-lg- 列(column)數 12 最大列寬 自動 ~62px ~81px ~97px 槽(gutter)寬 30px (每列左右均有 15px的間隔) 可嵌套 是 可偏移(Offsets) 是 可排序 是
通過定義以上不同的裝置的CSS,我們可以針對不同裝置定義不同類型的布局,如下:
- <div class="row">
- <!--
- 這裡定義頁面實際布局方式:
- a. bootstrap3預設把頁面邏輯定義為12個列
- b. 布局樣式通過設定占據列的數量來定義
- c. 針對不同螢幕寬度的裝置可以定義不同的布局展示方式,如下:
- xs: Extra Small devices
- sm: Small devices
- md: Medium devices
- lg: Large devices
- //-->
- <div class="col-sm-3 col-xs-12 grey box">目錄</div>
- <div class="col-sm-1 col-xs-12"></div>
- <div class="col-sm-8 col-xs-12 orange box">内容</div>
- <!--
- 以上分别定義了三個div元素,布局寬度如下:
- - xs裝置中三個元素分别占據完整頁面寬度
- - sm裝置中三個元素分别占據3個列,1個列和8個列寬度
- //-->
- </div>
以上代碼中,我們在超小型裝置定義3個div都占據了12列(即整屏寬度),而在小型裝置上,定義的分别是占據3個列,1個列和8個列。
javascript動态效果:
- Bootstrap3中自帶的popover效果
- 使用chart.js實作的一個甜甜圈圖表效果
小提示:使用前請确認導入了jQuery類庫和bootstrap3的類庫
popover效果
相關代碼如下:
在contact按鈕中添加id="contact",如下:
- <p id="contact" class="address text-center">聯系</p>
對應javascript如下:
- /*這裡針對聯系按鈕添加一個popover元件*/
- $('#contact').popover({
- placement:'bottom', //popover位置
- container: 'body',
- html:true,
- content:'<p>QQ: 36181610</p><p>微網誌:weibo.com/gbtags</p><p>微信:gbtags</p>'
- });
這樣如果你點選聯系按鈕,會看到一個彈出popover效果
甜甜圈語言水準圖表
這裡我們使用chart.js來實作甜甜圈風格的語言水準圖表,首先引用chart.js,這裡使用jQuery的ajax方法加載js,相關代碼如下:
- $.getScript('http://www.chartjs.org/assets/Chart.js', function(){
- //回調方法中處理生成圖表
- });
回調方法中,我們生成資料并且使用canvas來生成中文語言水準圖形,如下:
- //定義中文語言水準
- var zhdata =[{
- label: '中文水準',
- value: 90,
- highlight: '#FFC870',
- color: '#F7464A'
- }, {
- value: 10,
- color: "#EEEEEE"
- }
- ]
- var zhoptions ={
- animation: true,
- segmentShowStroke : false // 不描邊
- };
- var c = $('#zh');
- var ct = c.get(0).getContext('2d');
- var zhChart = new Chart(ct).Doughnut(zhdata, zhoptions);
類似方式,可以生成英文語言水準圖形。
最後生成效果如下: