在這一章中,我們将講解 Bootstrap 底層結構的關鍵部分,包括我們讓 web 開發變得更好、更快、更強壯的最佳實踐。
Bootstrap 使用了一些 HTML5 元素和 CSS 屬性。為了讓這些正常工作,您需要使用 HTML5 文檔類型(Doctype)。
是以,請在使用 Bootstrap 項目的開頭包含下面的代碼段。
如果在 Bootstrap 建立的網頁開頭不使用 HTML5 的文檔類型(Doctype),您可能會面臨一些浏覽器顯示不一緻的問題,甚至可能面臨一些特定情境下的不一緻,以緻于您的代碼不能通過 W3C 标準的驗證。
移動裝置優先是 Bootstrap 3 的最顯著的變化。
在之前的 Bootstrap 版本中(直到 2.x),您需要手動引用另一個 CSS,才能讓整個項目友好的支援移動裝置。
現在不一樣了,Bootstrap 3 預設的 CSS 本身就對移動裝置友好支援。
Bootstrap 3 的設計目标是移動裝置優先,然後才是桌面裝置。這實際上是一個非常及時的轉變,因為現在越來越多的使用者使用移動裝置。
為了讓 Bootstrap 開發的網站對移動裝置友好,確定适當的繪制和觸屏縮放,需要在網頁的 head 之中添加 viewport meta 标簽,如下所示:
width 屬性控制裝置的寬度。假設您的網站将被帶有不同螢幕分辨率的裝置浏覽,那麼将它設定為 device-width 可以確定它能正确呈現在不同裝置上。
initial-scale=1.0 確定網頁加載時,以 1:1 的比例呈現,不會有任何的縮放。
在移動裝置浏覽器上,通過為 viewport meta 标簽添加 user-scalable=no 可以禁用其縮放(zooming)功能。
通常情況下,maximum-scale=1.0 與 user-scalable=no 一起使用。這樣禁用縮放功能後,使用者隻能滾動螢幕,就能讓您的網站看上去更像原生應用的感覺。
注意,這種方式我們并不推薦所有網站使用,還是要看您自己的情況而定!
通過添加 img-responsive class 可以讓 Bootstrap 3 中的圖像對響應式布局的支援更友好。
接下來讓我們看下這個 class 包含了哪些 css 屬性。
在下面的代碼中,可以看到img-responsive class 為圖像賦予了 max-width: 100%; 和 height: auto; 屬性,可以讓圖像按比例縮放,不超過其父元素的尺寸。
這表明相關的圖像呈現為 block。當您把元素的 display 屬性設定為 block,以塊級元素顯示。
設定 height:auto,相關元素的高度取決于浏覽器。
設定 max-width 為 100% 會重寫任何通過 width 屬性指定的寬度。這讓圖檔對響應式布局的支援更友好。
如果需要讓使用了 .img-responsive 類的圖檔水準居中,請使用 .center-block 類,不要用 .text-center。
Bootstrap 3 使用 body {margin: 0;} 來移除 body 的邊距。
請看下面有關 body 的設定:
第一條規則設定 body 的預設字型樣式為 "Helvetica Neue", Helvetica, Arial, sans-serif。
第二條規則設定文本的預設字型大小為 14 像素。
第三條規則設定預設的行高度為 1.428571429。
第四條規則設定預設的文本顔色為 #333333。
最後一條規則設定預設的背景顔色為白色。
使用 @font-family-base、 @font-size-base 和 @line-height-base 屬性作為排版樣式。
通過屬性 @link-color 設定全局連結的顔色。
對于連結的預設樣式,如下設定:
是以,當滑鼠懸停在連結上,或者點選過的連結,顔色會被設定為 #2a6496。同時,會呈現一條下劃線。
除此之外,點選過的連結,會呈現一個顔色碼為 #333 的細的虛線輪廓。另一條規則是設定輪廓為 5 像素寬,且對于基于 webkit 浏覽器有一個 -webkit-focus-ring-color 的浏覽器擴充。輪廓偏移設定為 -2 像素。
以上所有這些樣式都可以在 scaffolding.less 中找到。
Bootstrap 使用 Normalize 來建立跨浏覽器的一緻性。
Normalize.css 是一個很小的 CSS 檔案,在 HTML 元素的預設樣式中提供了更好的跨浏覽器一緻性。
Bootstrap 3 的 container class 用于包裹頁面上的内容。讓我們一起來看看 bootstrap.css 檔案中的這個 .container class。
通過上面的代碼,把 container 的左右外邊距(margin-right、margin-left)交由浏覽器決定。
請注意,由于内邊距(padding)是固定寬度,預設情況下容器是不可嵌套的。
這會産生僞元素。設定 display 為 table,會建立一個匿名的 table-cell 和一個新的塊格式化上下文。:before 僞元素防止上邊距崩塌,:after 僞元素清除浮動。
如果 conteneditable 屬性出現在 HTML 中,由于一些 Opera bug,圍繞上述元素建立一個空格。這可以通過使用 content: " " 來修複。
它建立了一個僞元素,并確定了所有的容器包含所有的浮動元素。
Bootstrap 3 CSS 有一個申請響應的媒體查詢,在不同的媒體查詢門檻值範圍内都為 container 設定了max-width,用以比對網格系統。
Bootstrap 可以在最新的桌面系統和移動端浏覽器中很好的工作。
舊的浏覽器可能無法很好的支援。
下表為 Bootstrap 支援最新版本的浏覽器和平台:
Chrome
Firefox
IE
Opera
Safari
Android
YES
不适用
iOS
Mac OS X
Windows
YES*
* Bootstrap 支援 Internet Explorer 8 及更高版本的 IE 浏覽器。