Bootstrap學(xué)習(xí)之CSS

基本CSS樣式對(duì)HTML基本元素進(jìn)行樣式定義,并利用可擴(kuò)展的class增強(qiáng)其展示效果,那么接下來就讓我們來學(xué)習(xí)一下 Bootstrap 底層結(jié)構(gòu)的關(guān)鍵部分,包括我們讓 web 開發(fā)變得更好、更快弹谁、更強(qiáng)壯的最佳實(shí)踐。

一、HTML 5 文檔類型(Doctype)

Bootstrap 使用了一些 HTML5 元素和 CSS 屬性泳秀。為了讓這些正常工作,您需要使用 HTML5 文檔類型(Doctype)。頁(yè)面開頭需要使用如下代碼塊:

<!DOCTYPE html>
<html>
....
</html>

如果不使用HTML5 文檔類型(Doctype),可能會(huì)造成在不同的瀏覽器中顯示不一致的問題,甚至無法實(shí)現(xiàn)特定的效果,導(dǎo)致代碼無法通過W3C標(biāo)準(zhǔn)的驗(yàn)證愧捕。

二撒遣、移動(dòng)設(shè)備優(yōu)先

移動(dòng)設(shè)備優(yōu)先是 Bootstrap 3 的最顯著的變化。

Bootstrap 3首先的設(shè)計(jì)目標(biāo)是移動(dòng)設(shè)備,其次才是桌面設(shè)備壶愤。為了讓 Bootstrap 開發(fā)的網(wǎng)站對(duì)移動(dòng)設(shè)備友好湃累,確保適當(dāng)?shù)睦L制和觸屏縮放蒙秒,需要在網(wǎng)頁(yè)的 head 之中添加 viewport meta 標(biāo)簽马澈,代碼如下:

<meta name="viewport" content="width=device-width, 
                                     initial-scale=1.0, 
                                     maximum-scale=1.0, 
                                     user-scalable=no">

代碼注釋如下:

  • width 屬性控制設(shè)備的寬度。假設(shè)您的網(wǎng)站將被帶有不同屏幕分辨率的設(shè)備瀏覽,那么將它設(shè)置為 device-width 可以確保它能正確呈現(xiàn)在不同設(shè)備上。
  • initial-scale=1.0 確保網(wǎng)頁(yè)加載時(shí),以 1:1 的比例呈現(xiàn),不會(huì)有任何的縮放。
  • 在移動(dòng)設(shè)備瀏覽器上佛掖,通過為 viewport meta 標(biāo)簽添加 user-scalable=no 可以禁用其縮放(zooming)功能拴魄。
  • 通常情況下,maximum-scale=1.0 與 user-scalable=no 一起使用跛溉。這樣禁用縮放功能后,用戶只能滾動(dòng)屏幕,就能讓您的網(wǎng)站看上去更像原生應(yīng)用的感覺。
  • 注意:這里只是為了顯示更多的屬性,而不適用于所有的網(wǎng)站,請(qǐng)根據(jù)實(shí)際情況各自的需求自定義屬性翔脱。

三隶糕、響應(yīng)式圖像

<img>標(biāo)簽添加 img-responsive 的class屬性,可以讓圖像更好的適應(yīng)響應(yīng)式布局,下面是img-responsive的具體屬性:

.img-responsive {
  display: inline-block;
  height: auto;
  max-width: 100%;
}
  • inline-block灯节,元素相對(duì)于它周圍的內(nèi)容以內(nèi)聯(lián)形式呈現(xiàn)形入,但與內(nèi)聯(lián)不同的是,這種情況下我們可以設(shè)置寬度和高度
  • 設(shè)置 height:auto,相關(guān)元素的高度取決于瀏覽器
  • 設(shè)置 max-width 為 100% 會(huì)重寫任何通過 width 屬性指定的寬度

四挽放、排版

Bootstrap 使用 Helvetica Neue纯出、 Helvetica、 Arial 和 sans-serif 作為其默認(rèn)的字體棧务漩。

1. 標(biāo)題

Bootstrap 中定義了所有的 HTML 標(biāo)題(h1 到 h6)的樣式妖混,如果需要向標(biāo)題添加一個(gè)內(nèi)聯(lián)子標(biāo)題砖瞧,只需要給元素添加 <small> 標(biāo)簽,或者添加 .small class竭翠,這樣就能得到一個(gè)字號(hào)更小振坚、顏色更淺的文本。

2. Bootstrap 使用到的排版類
類名 描述
.lead 使段落突出顯示
.small 設(shè)定小文本 (設(shè)置為父文本的 85% 大小)
.text-left 設(shè)定文本左對(duì)齊
.text-center 設(shè)定文本居中對(duì)齊
.text-right 設(shè)定文本右對(duì)齊
.text-justify 設(shè)定文本對(duì)齊,段落中超出屏幕部分文字自動(dòng)換行
.text-nowrap 段落中超出屏幕部分不換行
.text-lowercase 設(shè)定文本小寫
.text-uppercase 設(shè)定文本大寫
.text-capitalize 設(shè)定單詞首字母大寫
.initialism 顯示在 <abbr> 元素中的文本以小號(hào)字體展示斋扰,且可以將小寫字母轉(zhuǎn)換為大寫字母
.blockquote-reverse 設(shè)定引用右對(duì)齊
.list-unstyled 移除默認(rèn)的列表樣式渡八,列表項(xiàng)中左對(duì)齊( <ul><ol> 中)。 這個(gè)類僅適用于直接子列表項(xiàng) (如果需要移除嵌套的列表項(xiàng)传货,你需要在嵌套的列表中使用該樣式)
.list-inline 將所有列表項(xiàng)放置同一行
.dl-horizontal 該類設(shè)置了浮動(dòng)和偏移屎鳍,應(yīng)用于 <dl> 元素和<dt> 元素中
.pre-scrollable 使 <pre> 元素可滾動(dòng) scrollable
3. Bootstrap 使用到的排版標(biāo)簽
標(biāo)簽名 描述
<small> 設(shè)置文本為父文本大小的 85%
<strong> 設(shè)置文本為更粗的文本
<em> 設(shè)置文本為斜體
<abbr> 顯示在文本底部的一條虛線邊框,當(dāng)鼠標(biāo)懸停在上面時(shí)會(huì)顯示完整的文本(只要您為 <abbr> title 屬性添加了文本)
<address> 可以在網(wǎng)頁(yè)上顯示聯(lián)系信息问裕,需要使用標(biāo)簽來為封閉的地址文本添加換行
<blockquote> 添加一個(gè)<small>標(biāo)簽來標(biāo)識(shí)引用的來源逮壁,使用 class.pull-right向右對(duì)齊引用
4. 列表

Bootstrap 有三種列表形式,分別是有序列表粮宛、無序列表和定義列表窥淆。

  • 有序列表:指以數(shù)字或其他有序字符開頭的列表卖宠。
  • 無序列表:指沒有特定順序的列表,是以傳統(tǒng)風(fēng)格的著重號(hào)開頭的列表忧饭。如果您不想顯示這些著重號(hào)扛伍,您可以使用 class .list-unstyled來移除樣式。您也可以通過使用 class .list-inline 把所有的列表項(xiàng)放在同一行中眷昆。
  • 定義列表:在這種類型的列表中蜒秤,每個(gè)列表項(xiàng)可以包含 <dt><dd> 元素。<dt> 代表 定義術(shù)語(yǔ)亚斋,就像字典,這是被定義的屬于(或短語(yǔ))攘滩。接著帅刊,<dd><dt> 的描述。您可以使用 class dl-horizontal<dl> 行中的屬于與描述并排顯示漂问。

五赖瞒、table表格

1. 表格使用到的標(biāo)簽
標(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é)
2. 表格使用到的類
作用于表格
描述
.table 為任意 <table> 添加基本樣式 (只有橫向分隔線)
.table-striped <tbody> 內(nèi)添加斑馬線形式的條紋 ( IE8 不支持)
.table-bordered 為所有表格的單元格添加邊框
.table-hover <tbody> 內(nèi)的任一行啟用鼠標(biāo)懸停狀態(tài)
.table-condensed 讓表格更加緊湊
.table-responsive 讓表格水平滾動(dòng)以適應(yīng)小型設(shè)備(小于 768px)
作用于表格的行或者單元格
描述
.active 將懸停的顏色應(yīng)用在行或者單元格上
.success 表示成功的操作
.info 表示信息變化的操作
.warning 表示一個(gè)警告的操作
.danger 表示一個(gè)危險(xiǎn)的操作

六、表單

Bootstrap 提供了下列類型的表單布局:垂直表單(默認(rèn))磷仰、內(nèi)聯(lián)表單袍嬉、水平表單

1. 水平表單

創(chuàng)建步驟如下:

  1. 向父 <form> 元素添加 class .form-horizontal
  2. 把標(biāo)簽和控件放在一個(gè)帶有 class .form-group<div> 中灶平。
  3. 向標(biāo)簽添加 class .control-label伺通。
2. 表單控件
① 輸入框 Input

input輸入框是最常見的表單文本字段。
Bootstrap 提供了對(duì)所有原生的 HTML5 的 input 類型的支持逢享,包括:text罐监、password、datetime瞒爬、datetime-local弓柱、date、month侧但、time矢空、week、number俊犯、email妇多、url、search燕侠、tel 和 color者祖。適當(dāng)?shù)?type 聲明是必需的立莉,這樣才能讓 input 獲得完整的樣式。

② 文本框 Textarea

當(dāng)您需要進(jìn)行多行輸入的時(shí)七问,則可以使用文本框 textarea蜓耻。必要時(shí)可以改變 rows 屬性,row的值代表著文本框 Textarea 的高度是幾行的文本的高度械巡。

③ 復(fù)選框(Checkbox)和單選框(Radio)

復(fù)選框和單選按鈕用于讓用戶從一系列預(yù)設(shè)置的選項(xiàng)中進(jìn)行選擇刹淌。

  • 當(dāng)創(chuàng)建表單時(shí),如果您想讓用戶從列表中選擇若干個(gè)選項(xiàng)時(shí)讥耗,請(qǐng)使用 checkbox有勾。如果您限制用戶只能選擇一個(gè)選項(xiàng),請(qǐng)使用 radio古程。
  • 對(duì)一系列復(fù)選框和單選框使用 .checkbox-inline.radio-inline class蔼卡,控制它們顯示在同一行上。
④ 選擇框(Select)

當(dāng)您想讓用戶從多個(gè)選項(xiàng)中進(jìn)行選擇挣磨,但是默認(rèn)情況下只能選擇一個(gè)選項(xiàng)時(shí)雇逞,則使用選擇框。

  • 使用 <select> 展示列表選項(xiàng)茁裙,通常是那些用戶很熟悉的選擇列表塘砸,比如州或者數(shù)字。
  • 使用 multiple="multiple" 允許用戶選擇多個(gè)選項(xiàng)晤锥。
⑤ 靜態(tài)控件

如果需要在一個(gè)水平表單內(nèi)的表單標(biāo)簽后放置純文本掉蔬,那么需要在<p>上使用 class .form-control-static

⑥ 表單控件狀態(tài)

除了 :focus 狀態(tài)(即,用戶點(diǎn)擊 input 或使用 tab 鍵聚焦到 input 上)查近,Bootstrap 還為禁用的輸入框定義了樣式眉踱,并提供了表單驗(yàn)證的 class。

  • 輸入框焦點(diǎn)
    當(dāng)輸入框 input 接收到 :focus 時(shí)霜威,輸入框的輪廓會(huì)被移除谈喳,同時(shí)應(yīng)用 box-shadow
  • 禁用的輸入框 input
    如果您想要禁用一個(gè)輸入框 input戈泼,只需要簡(jiǎn)單地添加 disabled 屬性婿禽,這不僅會(huì)禁用輸入框,還會(huì)改變輸入框的樣式以及當(dāng)鼠標(biāo)的指針懸停在元素上時(shí)鼠標(biāo)指針的樣式大猛。
  • 禁用的字段集 fieldset
    對(duì) <fieldset> 添加 disabled 屬性來禁用 <fieldset> 內(nèi)的所有控件扭倾。
  • 驗(yàn)證狀態(tài)
    Bootstrap 包含了錯(cuò)誤、警告和成功消息的驗(yàn)證樣式挽绩。只需要對(duì)父元素簡(jiǎn)單地添加適當(dāng)?shù)?class(.has-warning .has-error.has-success)即可使用驗(yàn)證狀態(tài)膛壹。
⑦ 表單控件大小
  • 控制表單高度的有三個(gè)class:

    • .input-lg 大號(hào)
    • 默認(rèn)大小
    • .input-sm 小號(hào)
  • 控制表單的寬度需要使用 .col-lg-* .col-md-* .col-sm-* .col-xs-*來控制不同屏幕大小下的寬度。

⑧ 表單幫助文本

為了給input輸入框添加幫助文本,可以在input輸入框后后面添加一個(gè)<span>標(biāo)簽模聋,使用class .help-block肩民。

七、按鈕

按鈕的定義方式有三種链方,可以通過標(biāo)簽<a> <button> <input>來創(chuàng)建持痰,但需要對(duì)這些標(biāo)簽進(jìn)行role或者type的定義。也可通過class的選擇來創(chuàng)建不同樣式的Button

通過class的選擇來定義按鈕的樣式祟蚀,具體如下表所示:

描述
.btn 為按鈕添加基本樣式
.btn-default 默認(rèn)/標(biāo)準(zhǔn)按鈕
.btn-primary 原始按鈕樣式(未被操作)
.btn-success 表示成功的動(dòng)作
.btn-info 該樣式可用于要彈出信息的按鈕
.btn-warning 表示需要謹(jǐn)慎操作的按鈕
.btn-danger 表示一個(gè)危險(xiǎn)動(dòng)作的按鈕操作
.btn-link 讓按鈕看起來像個(gè)鏈接 (仍然保留按鈕行為)
.btn-lg 制作一個(gè)大按鈕
.btn-sm 制作一個(gè)小按鈕
.btn-xs 制作一個(gè)超小按鈕
.btn-block 塊級(jí)按鈕(拉伸至父元素100%的寬度)
.active 按鈕被點(diǎn)擊
.disabled 禁用按鈕
按鈕元素 添加 .active class 來顯示它是激活的
錨元素 添加 .active class 到 <a> 按鈕來顯示它是激活的

八工窍、圖片

通過class的選擇來定義圖片的樣式,具體如下表所示:

描述
.img-rounded 為圖片添加圓角 (IE8 不支持)
.img-circle 將圖片變?yōu)閳A形 (IE8 不支持)
.img-thumbnail 縮略圖功能
.img-responsive 圖片響應(yīng)式 (將很好地?cái)U(kuò)展到父元素)

九前酿、輔助類

文本顏色 文本背景顏色
.text-muted .bg-primary
.text-primary .bg-success
.text-success .bg-info
.text-info .bg-warning
.text-warning .bg-danger
.text-danger
描述
.pull-left 元素浮動(dòng)到左邊
.pull-right 元素浮動(dòng)到右邊
.center-block 設(shè)置元素為 display:block 并居中顯示
.clearfix 清除浮動(dòng)
.show 強(qiáng)制元素顯示
.hidden 強(qiáng)制元素隱藏
.sr-only 除了屏幕閱讀器外患雏,其他設(shè)備上隱藏元素
.sr-only-focusable 與 .sr-only 類結(jié)合使用,在元素獲取焦點(diǎn)時(shí)顯示(如:鍵盤操作的用戶)
.text-hide 將頁(yè)面元素所包含的文本內(nèi)容替換為背景圖
.close 顯示關(guān)閉按鈕
.caret 顯示下拉式功能
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末罢维,一起剝皮案震驚了整個(gè)濱河市纵苛,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌言津,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,843評(píng)論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件取试,死亡現(xiàn)場(chǎng)離奇詭異悬槽,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)瞬浓,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,538評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門初婆,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人猿棉,你說我怎么就攤上這事磅叛。” “怎么了萨赁?”我有些...
    開封第一講書人閱讀 163,187評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵弊琴,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我杖爽,道長(zhǎng)敲董,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,264評(píng)論 1 292
  • 正文 為了忘掉前任慰安,我火速辦了婚禮腋寨,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘化焕。我一直安慰自己萄窜,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,289評(píng)論 6 390
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著查刻,像睡著了一般键兜。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上赖阻,一...
    開封第一講書人閱讀 51,231評(píng)論 1 299
  • 那天蝶押,我揣著相機(jī)與錄音,去河邊找鬼火欧。 笑死棋电,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的苇侵。 我是一名探鬼主播赶盔,決...
    沈念sama閱讀 40,116評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼榆浓!你這毒婦竟也來了于未?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,945評(píng)論 0 275
  • 序言:老撾萬榮一對(duì)情侶失蹤陡鹃,失蹤者是張志新(化名)和其女友劉穎烘浦,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體萍鲸,經(jīng)...
    沈念sama閱讀 45,367評(píng)論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡闷叉,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,581評(píng)論 2 333
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了脊阴。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片握侧。...
    茶點(diǎn)故事閱讀 39,754評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖嘿期,靈堂內(nèi)的尸體忽然破棺而出品擎,到底是詐尸還是另有隱情,我是刑警寧澤备徐,帶...
    沈念sama閱讀 35,458評(píng)論 5 344
  • 正文 年R本政府宣布萄传,位于F島的核電站,受9級(jí)特大地震影響坦喘,放射性物質(zhì)發(fā)生泄漏盲再。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,068評(píng)論 3 327
  • 文/蒙蒙 一瓣铣、第九天 我趴在偏房一處隱蔽的房頂上張望答朋。 院中可真熱鬧,春花似錦棠笑、人聲如沸梦碗。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,692評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)洪规。三九已至印屁,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間斩例,已是汗流浹背雄人。 一陣腳步聲響...
    開封第一講書人閱讀 32,842評(píng)論 1 269
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留念赶,地道東北人础钠。 一個(gè)月前我還...
    沈念sama閱讀 47,797評(píng)論 2 369
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像叉谜,于是被迫代替她去往敵國(guó)和親旗吁。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,654評(píng)論 2 354

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

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理停局,服務(wù)發(fā)現(xiàn)很钓,斷路器,智...
    卡卡羅2017閱讀 134,652評(píng)論 18 139
  • Bootstrap是什么董栽? 一套易用码倦、優(yōu)雅、靈活锭碳、可擴(kuò)展的前端工具集--BootStrap叹洲。GitHub上介紹 的...
    凜0_0閱讀 10,869評(píng)論 3 184
  • 第5章 菜單、按鈕及導(dǎo)航 一工禾、下拉菜單 小伙伴們注意,在Bootstrap框架中的下拉菜單組件是一個(gè)獨(dú)立的組件蝗柔,根...
    凜0_0閱讀 4,969評(píng)論 0 66
  • 原文出處 http://blog.poetries.top/2016/11/19/bootstrap-review...
    程序員poetry閱讀 7,079評(píng)論 0 42
  • 第3章 探索Bootstrap組件 在這一章闻葵,我們將開始使用Bootstrap的一些非常有用的HTML組件。諸如按...
    海上名月閱讀 934評(píng)論 1 6