前端框架Bootstrap的學(xué)習(xí)

Bootstrap的來源

Bootstrap寝姿,來自 Twitter儡毕,是目前最受歡迎的前端框架也切。Bootstrap 是基于 HTML、CSS腰湾、JAVASCRIPT 的雷恃,它簡(jiǎn)潔靈活,使得 Web 開發(fā)更加快捷费坊。Bootstrap 提供了優(yōu)雅的 HTML 和 CSS 規(guī)范倒槐。一直是 GitHub 上的熱門開源項(xiàng)目。

Bootstrap的特點(diǎn)

  • 移動(dòng)設(shè)備優(yōu)先:自 Bootstrap 3 起附井,框架包含了貫穿于整個(gè)庫的移動(dòng)設(shè)備優(yōu)先的樣式讨越。
  • 響應(yīng)式設(shè)計(jì)(@media媒體布局):Bootstrap 的響應(yīng)式 CSS 能夠自適應(yīng)于臺(tái)式機(jī)两残、平板電腦和手機(jī)。
  • 柵欄布局(col-md-3)
  • 它提供了功能強(qiáng)大的內(nèi)置組建把跨,易于定制人弓。

Bootstrap 上手

1. Bootstrap的下載與安裝

Bootstrap中文網(wǎng)

Bootstrap英文網(wǎng)

去Bootstrap的官方網(wǎng)站下載最新版的Bootstrap

2.文件結(jié)構(gòu)

當(dāng)下載最新版的Bootstrap并進(jìn)行解壓縮后,將得到下列的文件目錄結(jié)構(gòu)

 bootstrap/
├── css/
│   ├── bootstrap.css
│   ├── bootstrap.css.map
│   ├── bootstrap.min.css
│   ├── bootstrap.min.css.map
│   ├── bootstrap-theme.css
│   ├── bootstrap-theme.css.map
│   ├── bootstrap-theme.min.css
│   └── bootstrap-theme.min.css.map
├── js/
│   ├── bootstrap.js
│   └── bootstrap.min.js
└── fonts/
    ├── glyphicons-halflings-regular.eot
    ├── glyphicons-halflings-regular.svg
    ├── glyphicons-halflings-regular.ttf
    ├── glyphicons-halflings-regular.woff
    └── glyphicons-halflings-regular.woff2

上面展示的就是 Bootstrap 的基本文件結(jié)構(gòu):預(yù)編譯文件可以直接使用到任何 web 項(xiàng)目中着逐。以及編譯好的 CSS 和 JS (bootstrap.*) 文件崔赌,還有經(jīng)過壓縮的 CSS 和 JS (bootstrap.min.*) 文件。同時(shí)還包含了來自 Glyphicons 的圖標(biāo)字體耸别,在附帶的 Bootstrap 主題中使用到了這些圖標(biāo)峰鄙。

3.Bootstrap的使用基礎(chǔ)模板 --> 最簡(jiǎn)單的 Bootstrap 頁面

<!DOCTYPE html>
<html lang="zh-CN">
  <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <!-- 上述3個(gè)meta標(biāo)簽*必須*放在最前面,任何其他內(nèi)容都*必須*跟隨其后太雨! -->
    <title>Bootstrap 101 Template</title>

    <!-- Bootstrap -->
    <link  rel="stylesheet">

    <!-- HTML5 shim 和 Respond.js 是為了讓 IE8 支持 HTML5 元素和媒體查詢(media queries)功能 -->
    <!-- 警告:通過 file:// 協(xié)議(就是直接將 html 頁面拖拽到瀏覽器中)訪問頁面時(shí) Respond.js 不起作用 -->
    <!--[if lt IE 9]>
      <script src="https://cdn.jsdelivr.net/npm/html5shiv@3.7.3/dist/html5shiv.min.js"></script>
      <script src="https://cdn.jsdelivr.net/npm/respond.js@1.4.2/dest/respond.min.js"></script>
    <![endif]-->
  </head>
  <body>
    <h1>你好吟榴,世界!</h1>
    <!-- jQuery (Bootstrap 的所有 JavaScript 插件都依賴 jQuery囊扳,所以必須放在前邊) -->
    <script src="https://cdn.jsdelivr.net/npm/jquery@1.12.4/dist/jquery.min.js"></script>
    <!-- 加載 Bootstrap 的所有 JavaScript 插件吩翻。你也可以根據(jù)需要只加載單個(gè)插件。 -->
    <script src="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/js/bootstrap.min.js"></script>
  </body>
</html>

可以看到包含了 jquery.js锥咸、bootstrap.min.js 和 bootstrap.min.css 文件狭瞎,用于讓一個(gè)常規(guī)的 HTML 文件變?yōu)槭褂昧?Bootstrap 的模板。

Bootstrap 網(wǎng)格系統(tǒng)

簡(jiǎn)介

Bootstrap 提供了一套響應(yīng)式搏予、移動(dòng)設(shè)備優(yōu)先的流式網(wǎng)格系統(tǒng)熊锭,隨著屏幕或視口(viewport)尺寸的增加,系統(tǒng)會(huì)自動(dòng)分為最多 12 列雪侥。

什么是網(wǎng)格(Grid)

在平面設(shè)計(jì)中碗殷,網(wǎng)格是一種由一系列用于組織內(nèi)容的相交的直線(垂直的、水平的)組成的結(jié)構(gòu)(通常是二維的)速缨。它廣泛應(yīng)用于打印設(shè)計(jì)中的設(shè)計(jì)布局和內(nèi)容結(jié)構(gòu)锌妻。在網(wǎng)頁設(shè)計(jì)中,它是一種用于快速創(chuàng)建一致的布局和有效地使用 HTML 和 CSS 的方法旬牲。

簡(jiǎn)單地說仿粹,網(wǎng)頁設(shè)計(jì)中的網(wǎng)格用于組織內(nèi)容,讓網(wǎng)站易于瀏覽原茅,并降低用戶端的負(fù)載吭历。

什么是Bootstrap網(wǎng)格系統(tǒng)(Gird Stystem)

Bootstrap 包含了一個(gè)響應(yīng)式的、移動(dòng)設(shè)備優(yōu)先的擂橘、不固定的網(wǎng)格系統(tǒng)晌区,可以隨著設(shè)備或視口大小的增加而適當(dāng)?shù)財(cái)U(kuò)展到 12 列。它包含了用于簡(jiǎn)單的布局選項(xiàng)的預(yù)定義類,也包含了用于生成更多語義布局的功能強(qiáng)大的混合類契讲。

根據(jù)上面的語句,我們可以理解為,Bootstrap 代碼從小屏幕設(shè)備(比如移動(dòng)設(shè)備滑频、平板電腦)開始捡偏,然后擴(kuò)展到大屏幕設(shè)備(比如筆記本電腦、臺(tái)式電腦)上的組件和網(wǎng)格峡迷。

移動(dòng)設(shè)備優(yōu)先策略

  • 內(nèi)容

    • 決定什么是最重要的
    • 布局
  • 優(yōu)先設(shè)計(jì)更小的寬度

    • 基礎(chǔ)的 CSS 是移動(dòng)設(shè)備優(yōu)先银伟,媒體查詢 是針對(duì)于平板電腦、臺(tái)式電腦
    • 漸進(jìn)增強(qiáng)
  • 隨著屏幕大小的增加而添加元素

響應(yīng)式網(wǎng)格系統(tǒng)隨著屏幕或視口(viewport)尺寸的增加绘搞,系統(tǒng)會(huì)自動(dòng)分為最多 12 列彤避。

image

Bootstrap 網(wǎng)格系統(tǒng)(Grid System)的工作原理

網(wǎng)格系統(tǒng)通過一系列包含內(nèi)容的行和列來創(chuàng)建頁面布局。下面列出了 Bootstrap 網(wǎng)格系統(tǒng)是如何工作的:

  • 行必須放置在 .container class 內(nèi)夯辖,以便獲得適當(dāng)?shù)膶?duì)齊(alignment)和內(nèi)邊距(padding)
  • 使用行來創(chuàng)建列的水平組
  • 內(nèi)容應(yīng)該放置在列內(nèi)琉预,且唯有列可以是行的直接子元素
  • 預(yù)定義的網(wǎng)格類,比如 .row.col-xs-4蒿褂,可用于快速創(chuàng)建網(wǎng)格布局圆米。LESS 混合類可用于更多語義布局
  • 列通過內(nèi)邊距(padding)來創(chuàng)建列內(nèi)容之間的間隙。該內(nèi)邊距是通過 .rows 上的外邊距(margin)取負(fù)啄栓,表示第一列和最后一列的行偏移
  • 網(wǎng)格系統(tǒng)是通過指定您想要橫跨的十二個(gè)可用的列來創(chuàng)建的娄帖。例如,要?jiǎng)?chuàng)建三個(gè)相等的列昙楚,則使用三個(gè) .col-xs-4

網(wǎng)絡(luò)選項(xiàng)

下面總結(jié)了Bootstrap網(wǎng)格系統(tǒng)如何跨多個(gè)設(shè)備工作

說明 超小設(shè)備手機(jī)(< 768px) 小型設(shè)備平板電腦(≥ 768px) 中型設(shè)備臺(tái)式電腦(≥ 992px) 大型設(shè)備臺(tái)式電腦(≥ 1200px)
網(wǎng)格行為 一直是水平的 以折疊開始得湘,斷點(diǎn)以上是水平的 以折疊開始咖楣,斷點(diǎn)以上是水平的 以折疊開始,斷點(diǎn)以上是水平的
最大容器寬度 None (auto) 750px 970px 1170px
Class 前綴 .col-xs- .col-sm- .col-md- .col-lg-
列數(shù)量和 12 12 12 12
最大列寬 Auto 60px 78px 95px
間隙寬度 30px(一個(gè)列的每邊分別 15px) 30px(一個(gè)列的每邊分別 15px) 30px(一個(gè)列的每邊分別 15px) 30px(一個(gè)列的每邊分別 15px)
可嵌套 Yes Yes Yes Yes
偏移量 Yes Yes Yes Yes
列排序 Yes Yes Yes Yes

媒體查詢的用法

@media 媒體查詢的用法

媒體查詢就是能夠在不同的條件下使用不同的樣式,使頁面在不同的終端設(shè)備下達(dá)到不同的渲染效果蕉毯。

媒體特性

媒體查詢中的大部分接受 min/max 前綴,用來表達(dá)其邏輯關(guān)系埋泵,表示應(yīng)用大于等于或小于等于某個(gè)值的情況砂竖。沒有特殊說明都支持 min/max

  • width:Length 渲染界面的寬度
  • height:Length 渲染界面的高度
  • color:整數(shù)谭跨,表示色彩的字節(jié)數(shù)
  • color-index:整數(shù)干厚, 色彩表中的色彩數(shù)
  • device-aspct-ratio:整數(shù)/整數(shù),寬高比例
  • device-height:Length 設(shè)備屏幕的輸出高度
  • device-width:Length 設(shè)備屏幕的輸出寬度
  • grid(不支持 min/max 前綴):整數(shù)螃宙,是否基于柵格的設(shè)備
  • monochrome:整數(shù)蛮瞄,單色幀緩沖器中每像素字節(jié)數(shù)
  • resolution:分辨率(dpi/dpcm)分辨率
  • scan(不支持 min/max 前綴):Progressive interlaced,Tv 媒體類型的掃描方式
  • orientation(不支持 min/max 前綴):Portrait//landscape 橫屏或豎屏

使用媒體查詢

語法:@media 媒體類型 and (媒體特性) {你的樣式}

最大寬度

max-width 是媒體特性中最常用的一個(gè)特性谆扎,其意思是指媒體類型小于或等于指定的寬度時(shí)挂捅,樣式生效。如:

@media screen and (max-width:480px) {
 .ads {
   display:none;
  }
}

上面表示的是:當(dāng)屏幕小于或等于 480px 時(shí)堂湖,頁面中包含類樣式 .ads 的元素都將被隱藏闲先。

最小寬度

min-widthmax-width 相反状土,指的是媒體類型大于或等于指定寬度時(shí),樣式生效伺糠。

@media screen and (min-width: 900px) {
    .wrapper {width: 980px;}
}

多個(gè)媒體特性的使用

媒體查詢可以使用關(guān)鍵詞 and 將多個(gè)媒體特性結(jié)合在一起蒙谓。也就是說,一個(gè)媒體查詢中可以包含 0 到多個(gè)表達(dá)式训桶,表達(dá)式又可以包含 0 到多個(gè)關(guān)鍵字累驮,以及一種媒體類型。

當(dāng)屏幕在 600px~900px 之間時(shí)舵揭,body 的背景色渲染為 #F5F5F5 谤专,如下所示:

@media screen and (min-width:600px) and (max-width:900px) {
  body {background-color:#F5F5F5;}
}

Bootstrap 表格

簡(jiǎn)介

Bootstrap 提供了一個(gè)清晰的創(chuàng)建表格的布局。下表列出了 Bootstrap 支持的一些表格元素:

標(biāo)簽 描述
<table> 為表格添加基礎(chǔ)樣式
<thead> 表格標(biāo)題行的容器元素(<tr>)午绳,用來標(biāo)識(shí)表格列
<tbody> 表格主體中的表格行的容器元素(<tr>
<tr> 一組出現(xiàn)在單行上的表格單元格的容器元素(<td><th>
<td> 默認(rèn)的表格單元格
<th> 特殊的表格單元格置侍,用來標(biāo)識(shí)列或行(取決于范圍和位置)。必須在 <thead> 內(nèi)使用
<caption> 關(guān)于表格存儲(chǔ)內(nèi)容的描述或總結(jié)

#表格類

下表樣式可用于表格中:

描述
.table 為任意 <table> 添加基本樣式 (只有橫向分隔線)
.table-striped <tbody> 內(nèi)添加斑馬線形式的條紋 ( IE8 不支持)
.table-bordered 為所有表格的單元格添加邊框
.table-hover <tbody> 內(nèi)的任一行啟用鼠標(biāo)懸停狀態(tài)
.table-condensed 讓表格更加緊湊

#<tr>, <th><td>

下表的類可用于表格的行或者單元格:

描述
.active 將懸停的顏色應(yīng)用在行或者單元格上
.success 表示成功的操作
.info 表示信息變化的操作
.warning 表示一個(gè)警告的操作
.danger 表示一個(gè)危險(xiǎn)的操作

#基本的表格

如果您想要一個(gè)只帶有內(nèi)邊距(padding)和水平分割的基本表拦焚,請(qǐng)?zhí)砑?class .table墅垮,如下面實(shí)例所示:

<table class="table">
  <caption>基本的表格布局</caption>
  <thead>
    <tr>
      <th>名稱</th>
      <th>城市</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Tanmay</td>
      <td>Bangalore</td>
    </tr>
    <tr>
      <td>Sachin</td>
      <td>Mumbai</td>
    </tr>
  </tbody>
</table>
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市耕漱,隨后出現(xiàn)的幾起案子算色,更是在濱河造成了極大的恐慌,老刑警劉巖螟够,帶你破解...
    沈念sama閱讀 216,692評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件灾梦,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡妓笙,警方通過查閱死者的電腦和手機(jī)若河,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,482評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來寞宫,“玉大人萧福,你說我怎么就攤上這事”哺常” “怎么了鲫忍?”我有些...
    開封第一講書人閱讀 162,995評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)钥屈。 經(jīng)常有香客問我悟民,道長(zhǎng),這世上最難降的妖魔是什么篷就? 我笑而不...
    開封第一講書人閱讀 58,223評(píng)論 1 292
  • 正文 為了忘掉前任射亏,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘智润。我一直安慰自己及舍,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,245評(píng)論 6 388
  • 文/花漫 我一把揭開白布窟绷。 她就那樣靜靜地躺著锯玛,像睡著了一般。 火紅的嫁衣襯著肌膚如雪钾麸。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,208評(píng)論 1 299
  • 那天炕桨,我揣著相機(jī)與錄音饭尝,去河邊找鬼。 笑死献宫,一個(gè)胖子當(dāng)著我的面吹牛钥平,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播姊途,決...
    沈念sama閱讀 40,091評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼涉瘾,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了捷兰?” 一聲冷哼從身側(cè)響起立叛,我...
    開封第一講書人閱讀 38,929評(píng)論 0 274
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎贡茅,沒想到半個(gè)月后秘蛇,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,346評(píng)論 1 311
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡顶考,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,570評(píng)論 2 333
  • 正文 我和宋清朗相戀三年赁还,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片驹沿。...
    茶點(diǎn)故事閱讀 39,739評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡艘策,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出渊季,到底是詐尸還是另有隱情朋蔫,我是刑警寧澤,帶...
    沈念sama閱讀 35,437評(píng)論 5 344
  • 正文 年R本政府宣布却汉,位于F島的核電站斑举,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏病涨。R本人自食惡果不足惜富玷,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,037評(píng)論 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧赎懦,春花似錦雀鹃、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,677評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至当悔,卻和暖如春傅瞻,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背盲憎。 一陣腳步聲響...
    開封第一講書人閱讀 32,833評(píng)論 1 269
  • 我被黑心中介騙來泰國(guó)打工嗅骄, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人饼疙。 一個(gè)月前我還...
    沈念sama閱讀 47,760評(píng)論 2 369
  • 正文 我出身青樓溺森,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親窑眯。 傳聞我的和親對(duì)象是個(gè)殘疾皇子屏积,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,647評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容