梁敦毫
(廣東茂名幼兒師范??茖W校,廣東茂名 525000)
近年來,隨著移動互聯網的高速發展,移動互聯網用戶的數量已經遠遠超過了PC端用戶,由于移動設備使用便捷,越來越多的人喜歡通過手機、平板等移動設備來訪問網絡,例如,當想查看某學校官網時,用戶可能會通過手機登陸,如果打開的網站排版混亂、字體太小、滾動條很長等情況,不僅用戶體驗差,網站也達不到宣傳的效果。現在,大部分的網站都逐步往風格一致而且兼容不同的設備的方向發展,響應式布局就順應而生。響應式布局是指通過一套代碼使網頁內容能根據設備的不同尺寸良好的呈現不一樣的效果,從而提高用戶的體驗。
響應式布局是指一個網站能夠兼容不同的終端設備,而不需要為每個終端設備設計一個特定版本。響應式布局能根據不同的終端,呈現不同的顯示效果,為用戶帶來更好舒適的界面和更好的用戶體驗。
HTML5是最新的Web標準,在原有的HTML4基礎上增加了一些新的標簽和JavaScript接口,其中定義了很多語義化的標簽,如:header、footer、nav、main等,這些標簽給網頁的布局帶來了很大的便利。
CSS3是CSS(層疊樣式表)的最新版本,它在原有的CSS2.0的版本上增加了許多新的特性,例如,多列布局和彈性盒模型布局特性、媒體查詢特性等,其中,彈性盒模型布局方便了Web前端開發者根據復雜的前端分辨率進行彈性布局,輕松地實現頁面中的某一區塊在水平、垂直方向對齊,是進行響應式網站開發的一大利器[1]。媒體查詢能根據不同的分辨率的終端設備,定義不同的樣式。
Bootstrap是美國Twitter公司的設計師Mark Otto和Jacob Thornton合作基于HTML、CSS、JavaScript開發的簡潔、直觀、強悍的前端開發框架,使得Web開發更加快捷[2]。Bootstrap提供了一套響應式、移動設備優先的流式網格系統,隨著屏幕或視口(viewport)尺寸的增加,系統會自動分為最多12列[3]。
設計網頁布局的實現方式有很多種,但是主流的設計方式是DIV+CSS,這種方式結構代碼簡單,可以輕松的實現內容與表現相分離,提高網頁的加載速度,特別是在HTML5中增加了
該響應式布局的實現主要是利用CSS3的媒介查詢(@media)功能。通過查詢判斷設備終端所處的寬度范圍,然后執行對應的CSS樣式,從而呈現不同的布局效果。該案例實現的兩個關鍵點如下:
2.1.1 HTML結構代碼
在案例中,布局分三大模塊:頭部(header)、中間(container)、腳部(footer),其中主題部分分左側(left)、主體(main)、右側(right)三個模塊。具體代碼如下:

2.1.2 CSS代碼
為了實現不同的設備顯示不同的布局效果,案例中將設備的瀏覽器的寬度分為大于等于992像素,768~992像素以及小于768像素三種情況。當寬度大于992像素時,header、container、footer的寬度均設置為992像素,container中的三個模塊都左浮動;具體代碼如下:


圖1 效果圖

當寬度在768-992像素時,header、container、footer的寬度均設置為750像素,main和left設置左浮動,right設置為display。

當寬度小于768像素時,所有模塊的寬度都設為600像素,這樣模塊就實現疊加顯示。

從上面的案例可以看出HTML5+CSS3的方法可以實現響應式布局,但是,設計人員需要為每一個查詢范圍的分別寫一套不同的CSS代碼,這樣不僅代碼多,而且工作量非常大。為了能簡單高效的設計響應式布局,可以借助前端開發框架Bootstrap來實現。
Bootstrap中預定義了一套CSS樣式,以及樣式對應的jQuery代碼,使用時只需要提供固定的HTML結構,再添加Bootstrap中的類名稱即可實現指定的效果。另外,Bootstrap還包含了豐富的組件和插件,同時擁有一套移動設備優先的流式網格系統,網格系統將容器平均為12列,在使用時根據實際情況設置模塊所占的列數,但是所有模塊的列數總和不超過12,如圖2網格系統所示,它包含了很多易于使用的預定義類和強大的用于生成更具語義的布局[4]。網格系統通過一系列的行和列的組合來創建網頁布局,整個網格系統根據設備尺寸的大小形成四種不同的網格選項,Bootstrap為不同的網格選項定義了不同的類,如圖3網格參數所示。

圖2 網格系統
其中,class前綴的命名規則就是根據不同屏幕寬度區分的,例如,.col-xs-適用屏幕寬度小于768px的超小設備,.col-sm-適用寬度在768px~992px之間的小型設備,.col-md-適用寬度在992px~1200px之間的中型設備,.col-lg-適應寬度大于1200px的大型設備。
了解了網格系統,再利用Bootstrap設計與圖1相同效果的網頁布局就變得輕松多了。下面將通過兩個步驟來實現這個布局效果:
2.2.1 添加Bootstrap文件
Bootstrap里集成了很多前端框架的內容,要想使用這些內容,必須把Bootstrap導入到網頁中,導入的方式有兩種:下載Bootstrap文件再導入到網頁;通過CDN庫導入。在本案例中,采用第一種方式,下載Bootstrap后,解壓出來,并在HTML的頭部導入Bootstrap的CSS文件,命令如下:
2.2.2 劃分網頁模塊
這里劃分模塊的代碼和前面是類似的具體如下:
在HTML代碼中,直接使用Bootstrap的網格系統,頭部header和腳部footer不管屏幕寬度多大都是占12列,所以直接引用類“col-sm-12”即可,content模塊分成left、main、right三個部分,當屏幕寬度小于768px時,當部分都是占12列,引用類“col-xs-12”;當屏幕寬度在768px-992px時,left占4列,引用類“col-sm-12”,main占8列,引用類“col-sm-8”,而right則隱藏起來,引用類“hiddensm”;當屏幕寬度大于992px時,三個部分分別占3列、6列、3列,對應分別引用類“col-md-3”、col-md-6”、col-md-3”。這樣,網頁就可以隨著屏幕寬度的變化而呈現出不同的布局效果,其效果如圖4所示,至此,利用Bootstrap設計響應式布局就完成了。

圖3 網格參數

圖4 不同屏幕寬度顯示效果圖
在本文中敘述了兩種不同的設計響應式布局的方式。比較這兩種實現方式,采用媒體查詢,需要為每一種尺寸的設備設計一套樣式,代碼量大,設計繁瑣;而采用Bootstrap框架體系,只需要直接引用預定義的樣式類即可,設計變得便捷高效。由此可見,在移動設備流行的時代,Web前端開發中,掌握和應用Bootstrap框架是十分重要的。