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