郭彥輝
(廣州番禺職業(yè)技術(shù)學(xué)院 藝術(shù)設(shè)計學(xué)院,廣東 廣州 511483)
隨著各類上網(wǎng)設(shè)備的發(fā)展和普及使用,用戶使用智能手機、平板電腦、桌面電腦和筆記本電腦等設(shè)備訪問網(wǎng)站的情況普遍。如何使網(wǎng)站內(nèi)容在各種不同屏幕分辨率下保持良好的顯示效果,并使用戶獲得良好的體驗是需要關(guān)注和解決的問題。自從Ethan Marcotte提出響應(yīng)式 Web設(shè)計(RWD,Responsive Web Design)[1]概念以來,其設(shè)計方法能夠使同一網(wǎng)站兼容不同終端設(shè)備的訪問,而不需要為每個終端定制開發(fā)相應(yīng)的版本,可以有效降低網(wǎng)站開發(fā)的復(fù)雜性和維護的難度。這種設(shè)計方法對于高職院校的網(wǎng)站建設(shè)來說同樣具有應(yīng)用價值。本文以學(xué)校的招生信息網(wǎng)站改版設(shè)計為例,介紹該網(wǎng)站響應(yīng)式設(shè)計實現(xiàn)的過程及技術(shù)要點。
廣州番禺職業(yè)技術(shù)學(xué)院原招生信息網(wǎng)站由多個獨立運行的子網(wǎng)站構(gòu)成,這些子站面向的招生類型不同,先后獨立規(guī)劃設(shè)計、開發(fā)和管理。隨著學(xué)校招生宣傳和服務(wù)工作的推進,網(wǎng)站的內(nèi)容與功能需求有所變化,需要重新規(guī)劃設(shè)計與開發(fā)。為了便于今后對網(wǎng)站的統(tǒng)一管理與維護,同時,也為滿足網(wǎng)站來自移動設(shè)備訪問的需求,此次網(wǎng)站改版的內(nèi)容主要包括兩個方面:(1)將原有多個子站合并成為單獨一個網(wǎng)站,并使用網(wǎng)站群系統(tǒng)來實現(xiàn)網(wǎng)站的后臺管理功能,學(xué)校相關(guān)的招生信息將集中統(tǒng)一發(fā)布在該網(wǎng)站上。(2)采用響應(yīng)式設(shè)計使網(wǎng)站能夠兼容多種主流的終端設(shè)備,并且保持統(tǒng)一的設(shè)計風(fēng)格。
在新版招生信息網(wǎng)站的規(guī)劃中,對原先各子站的內(nèi)容和功能模塊進行調(diào)整合并,重新設(shè)計網(wǎng)站的信息架構(gòu)和頁面布局。新版網(wǎng)站主要包括招生計劃、報考指南、招生咨詢和錄取查詢等主要欄目內(nèi)容。
以往進行網(wǎng)頁設(shè)計時,會先以桌面電腦顯示器分辨率作為參考進行固定寬度設(shè)計,再針對小屏幕進行內(nèi)容重排。在響應(yīng)式設(shè)計中,應(yīng)該先針對小屏幕進行設(shè)計,再逐步增強針對大屏幕的設(shè)計和內(nèi)容[2]。在智能手機這類小屏幕設(shè)備設(shè)計中,網(wǎng)站內(nèi)容按照重要程度自上而下排列顯示,內(nèi)容元素和屏幕等寬,布局結(jié)構(gòu)以豎向單列顯示。布局隨著設(shè)備屏幕尺寸變寬其結(jié)構(gòu)也由單列變成多列形式,頁面最寬時適合于桌面電腦的顯示。網(wǎng)站首頁頁面設(shè)計簡稿如圖1所示。
圖1 不同顯示下的頁面設(shè)計簡稿Fig.1 Brief manuscript with different visual for webpage design
網(wǎng)站首頁的html結(jié)構(gòu)大致如下:
對于不支持
響應(yīng)式Web設(shè)計的核心技術(shù)是使用CSS3的媒體查詢(Media Queries)模塊。媒體查詢能夠根據(jù)設(shè)備的視口寬度、屏幕的寬高比、設(shè)備方向(橫向或縱向)等特性來改變頁面內(nèi)容的顯示方式[3]。這里的視口是指網(wǎng)頁在設(shè)備中實際顯示的區(qū)域。通常,在響應(yīng)式設(shè)計中使用媒體查詢會根據(jù)主流設(shè)備的屏幕分辨率來設(shè)置斷點(斷點是指頁面布局發(fā)生變化的臨界點),然后在斷點所劃分的不同屏幕尺寸范圍內(nèi)定義相應(yīng)的CSS樣式來設(shè)計頁面布局。例如以下代碼:
@media only screen and (min-width: 768px){
/*CSS屬性設(shè)置*/
}
以上表示當視口寬度大于等于768px時,執(zhí)行相應(yīng)的CSS樣式來改變頁面內(nèi)容的顯示方式。其中,媒體類型screen代表用于電腦顯示器屏幕、平板電腦以及智能手機等設(shè)備,min-width是定義輸出設(shè)備中的頁面最小可見區(qū)域?qū)挾?。同時,為了使頁面元素寬度會根據(jù)視口寬度自動調(diào)整,而且在媒體查詢斷點間能夠平滑過渡,需要將頁面所使用的固定像素轉(zhuǎn)換為百分比作為單位。隨著設(shè)備的更新?lián)Q代,無法預(yù)測網(wǎng)站將會在哪種新設(shè)備上顯示,而內(nèi)容的顯示不能只是在特定的設(shè)備屏幕上才最合適。在該網(wǎng)站中,通過觀察內(nèi)容在視口寬度變化下的顯示效果,在頁面布局不能適合內(nèi)容顯示的位置處設(shè)置斷點, 即由內(nèi)容來確定斷點。
在空間有限的小屏幕上,應(yīng)先考慮用戶所需要的內(nèi)容,其次才是導(dǎo)航。為了提升屏幕空間的利用率,避免網(wǎng)站導(dǎo)航在小屏幕上顯示時占據(jù)過多的內(nèi)容區(qū)域,采用內(nèi)容優(yōu)先于導(dǎo)航的方式進行設(shè)計[4-5],讓用戶能夠更快地獲取頁面內(nèi)容。在小屏幕上,網(wǎng)站主導(dǎo)航以一個圖標顯示并放置于屏幕右側(cè)上方,用戶通過點擊導(dǎo)航圖標來控制導(dǎo)航項的展開或隱藏顯示,其顯示效果與交互方式運用 jQurey與 CSS來實現(xiàn)。在有足夠空間的大屏幕上,該網(wǎng)站主導(dǎo)航是以水平方式顯示的,并放置于頁面的頭部。通過對主導(dǎo)航在不同屏幕空間上的處理,讓用戶能夠方便有效地使用導(dǎo)航來瀏覽網(wǎng)站內(nèi)容。
在響應(yīng)式設(shè)計中,應(yīng)讓瀏覽器能夠根據(jù)顯示設(shè)備的分辨率來加載相應(yīng)的圖片。對于移動設(shè)備來說加載與其相匹配的圖片,有利于節(jié)省流量和縮短加載時間,從而改善用戶體驗。在該網(wǎng)站中,采用的一種解決方式是使用標簽的srcset和sizes屬性來實現(xiàn)響應(yīng)式圖片。srcset屬性指定多個用逗號分隔的圖片源,每張圖片的寬度都使用w描述符來表示。sizes屬性描述了根據(jù)視口而變化的圖片尺寸[6-7]。瀏覽器根據(jù)這兩個屬性所提供的信息來選擇合適的圖片顯示。類似代碼如下:
圖2 網(wǎng)站首頁在不同設(shè)備上的顯示效果Fig.2 The visual effect of the homepage across various device
該代碼表示當視口寬度大于等于1000像素時,圖片寬度為640像素,當視口寬度小于1000像素時,圖片寬度為320像素。對不支持srcset屬性的瀏覽器,加載顯示src指定的圖片。
另外,顯示在網(wǎng)站中的圖標文件使用了 SVG格式。SVG是可縮放矢量圖形(Scalable Vector Graphics)的簡稱,它使用XML格式定義圖形[8]。放大或改變 SVG圖像尺寸并不會降低圖像質(zhì)量,因此不需要為不同的分辨率創(chuàng)建單獨的圖像。在頁面中把 SVG文件作為背景圖像的方式插入,類似代碼如:
.icon {
background-image:
url(images/icon.png);background-image:
url(images/icon.svg),none;
}
在該CSS樣式中對于不支持SVG的瀏覽器會加載PNG格式的圖片。
如果網(wǎng)頁沒有設(shè)置viewport的屬性值時,移動瀏覽器就將其按比例縮放以適應(yīng)移動設(shè)備屏幕顯示,這樣用戶在瀏覽時還需調(diào)整頁面,非常不便。因此,需要禁止移動瀏覽器自動調(diào)整頁面大小。在HTML的
部分添加以下代碼:,這樣瀏覽器將會按照設(shè)備實際寬度來渲染頁面。在開發(fā)過程中,主要使用 Chrome的開發(fā)者工具來進行調(diào)試,它可以模擬不同移動設(shè)備的屏幕分辨率來測試響應(yīng)式設(shè)計的效果,也支持自定義不同的分辨率來進行測試。此外,還使用真實的移動設(shè)備和各種主流的瀏覽器對網(wǎng)站進行測試,來獲得真實的效果和體驗。網(wǎng)站首頁在不同上網(wǎng)設(shè)備中的顯示效果如圖2所示。
該網(wǎng)站采用響應(yīng)式 Web設(shè)計方法,運用HTML5和 CSS3等技術(shù)實現(xiàn)響應(yīng)式頁面,并使用網(wǎng)站群系統(tǒng)實現(xiàn)網(wǎng)站信息發(fā)布及后臺管理功能。網(wǎng)站經(jīng)過一次開發(fā)能夠跨設(shè)備平臺運行,在不同設(shè)備中呈現(xiàn)的信息內(nèi)容同源,能夠同步更新信息內(nèi)容,并為用戶提供友好的界面,讓用戶在移動設(shè)備上獲得良好體驗。相對于為該網(wǎng)站開發(fā)針對不同設(shè)備的版本,采用響應(yīng)式設(shè)計在開發(fā)、維護、擴展性等方面具有一定的優(yōu)勢。響應(yīng)式設(shè)計為實現(xiàn)網(wǎng)站移動化提供了一種新的設(shè)計策略和選擇。隨著響應(yīng)式設(shè)計技術(shù)的不斷發(fā)展與完善,其受到關(guān)注與應(yīng)用也將會越來越多。
[1] Ethan Marcotte. Responsive Web Design[J/OL].(2010-05-25).http://alistapart.com/article/responsive-web-design.
[2] Ben Frain. 響應(yīng)式Web設(shè)計: HTML5和CSS3 實戰(zhàn)[M]. 北京: 人民郵電出版社, 2013.
[3] Luke Wroblewski. 移動優(yōu)先[M]. 北京: 人民郵電出版社,2014.
[4] 張幸芝, 徐東東, 賈菲. 基于響應(yīng)式Web設(shè)計的教務(wù)系統(tǒng)移動平臺研究與建設(shè)[J]. 軟件, 2013, 34(6): 5-7.
[5] Jason Grigsby. Responsive Images 101, Part 4:Srcset Width Descriptors[EB/OL]. (2015-03-19).https://cloudfour.com/thinks/responsive-images-101-part-4-srcset-width-descriptors.
[6] Jason Grigsby. Responsive Images 101, Part 5:Sizes[EB/OL].(2015-03-20).https://cloudfour.com/thinks/responsive-images-101-part-5-si zes.
[7] W3school.SVG教程[EB/OL]. http://www.w3school.com.cn/svg/index.asp.