響應(yīng)式網(wǎng)頁(yè)設(shè)計(jì)

響應(yīng)式網(wǎng)站設(shè)計(jì)(Responsive Web design)的理念是:

頁(yè)面的設(shè)計(jì)與開發(fā)應(yīng)當(dāng)根據(jù)用戶行為以及設(shè)備環(huán)境(系統(tǒng)平臺(tái)、屏幕尺寸、屏幕定向等)進(jìn)行相應(yīng)的響應(yīng)和調(diào)整。具體的實(shí)踐方式由多方面組成,包括彈性網(wǎng)格和布局、圖片、CSS media query的使用等。無(wú)論用戶正在使用筆記本還是iPad,我們的頁(yè)面都應(yīng)該能夠自動(dòng)切換分辨率、圖片尺寸及相關(guān)腳本功能等,以適應(yīng)不同設(shè)備;換句話說,頁(yè)面應(yīng)該有能力去自動(dòng)響應(yīng)用戶的設(shè)備環(huán)境。響應(yīng)式網(wǎng)頁(yè)設(shè)計(jì)就是一個(gè)網(wǎng)站能夠兼容多個(gè)終端——而不是為每個(gè)終端做一個(gè)特定的版本。這樣,我們就可以不必為不斷到來(lái)的新設(shè)備做專門的版本設(shè)計(jì)和開發(fā)了。

Ethan Marcotte曾經(jīng)在A List Apart發(fā)表過一篇文章"Responsive Web Design",文中援引了響應(yīng)式建筑設(shè)計(jì)的概念:現(xiàn)出現(xiàn)了一門新興的學(xué)科——"響應(yīng)式架構(gòu)(responsive architecture)"——提出,物理空間應(yīng)該可以根據(jù)存在于其中的人的情況進(jìn)行響應(yīng)。結(jié)合嵌入式機(jī)器人技術(shù)以及可拉伸材料的應(yīng)用,建筑師們正在嘗試建造一種可以根據(jù)周圍人群的情況進(jìn)行彎曲、伸縮和擴(kuò)展的墻體結(jié)構(gòu);還可以使用運(yùn)動(dòng)傳感器配合氣候控制系統(tǒng),調(diào)整室內(nèi)的溫度及環(huán)境光。已經(jīng)有公司在生產(chǎn)"智能玻璃":當(dāng)室內(nèi)人數(shù)達(dá)到一定的閾值時(shí),這種玻璃可以自動(dòng)變?yōu)椴煌该?,確保隱私。

將這個(gè)思路延伸到Web設(shè)計(jì)的領(lǐng)域,我們就得到了一個(gè)全新的概念。為什么一定要為每個(gè)用戶群各自打造一套設(shè)計(jì)和開發(fā)方案?和響應(yīng)式建筑相似,Web設(shè)計(jì)同樣應(yīng)該做到根據(jù)不同設(shè)備環(huán)境自動(dòng)響應(yīng)及調(diào)整。

顯然,我們無(wú)法也無(wú)需使用運(yùn)動(dòng)傳感器或是機(jī)器人技術(shù),響應(yīng)式Web設(shè)計(jì)更多需要的是抽象思維。好在,一些相關(guān)的概念已經(jīng)得到了實(shí)踐,比如液態(tài)布局、幫助頁(yè)面重新格式化的media queries和腳本等。但是響應(yīng)式Web設(shè)計(jì)不僅僅是關(guān)于屏幕分辨率自適應(yīng)以及自動(dòng)縮放的圖片等等,它更像是一種對(duì)于設(shè)計(jì)的全新思維模式。

響應(yīng)式網(wǎng)站設(shè)計(jì)(Responsive Web design)的理念是:

頁(yè)面的設(shè)計(jì)與開發(fā)應(yīng)當(dāng)根據(jù)用戶行為以及設(shè)備環(huán)境(系統(tǒng)平臺(tái)、屏幕尺寸、屏幕定向等)進(jìn)行相應(yīng)的響應(yīng)和調(diào)整。具體的實(shí)踐方式由多方面組成,包括彈性網(wǎng)格和布局、圖片、CSS media query的使用等。無(wú)論用戶正在使用筆記本還是iPad,我們的頁(yè)面都應(yīng)該能夠自動(dòng)切換分辨率、圖片尺寸及相關(guān)腳本功能等,以適應(yīng)不同設(shè)備;換句話說,頁(yè)面應(yīng)該有能力去自動(dòng)響應(yīng)用戶的設(shè)備環(huán)境。響應(yīng)式網(wǎng)頁(yè)設(shè)計(jì)就是一個(gè)網(wǎng)站能夠兼容多個(gè)終端——而不是為每個(gè)終端做一個(gè)特定的版本。這樣,我們就可以不必為不斷到來(lái)的新設(shè)備做專門的版本設(shè)計(jì)和開發(fā)了。

Ethan Marcotte曾經(jīng)在A List Apart發(fā)表過一篇文章"Responsive Web Design",文中援引了響應(yīng)式建筑設(shè)計(jì)的概念:現(xiàn)出現(xiàn)了一門新興的學(xué)科——"響應(yīng)式架構(gòu)(responsive architecture)"——提出,物理空間應(yīng)該可以根據(jù)存在于其中的人的情況進(jìn)行響應(yīng)。結(jié)合嵌入式機(jī)器人技術(shù)以及可拉伸材料的應(yīng)用,建筑師們正在嘗試建造一種可以根據(jù)周圍人群的情況進(jìn)行彎曲、伸縮和擴(kuò)展的墻體結(jié)構(gòu);還可以使用運(yùn)動(dòng)傳感器配合氣候控制系統(tǒng),調(diào)整室內(nèi)的溫度及環(huán)境光。已經(jīng)有公司在生產(chǎn)"智能玻璃":當(dāng)室內(nèi)人數(shù)達(dá)到一定的閾值時(shí),這種玻璃可以自動(dòng)變?yōu)椴煌该?,確保隱私。

將這個(gè)思路延伸到Web設(shè)計(jì)的領(lǐng)域,我們就得到了一個(gè)全新的概念。為什么一定要為每個(gè)用戶群各自打造一套設(shè)計(jì)和開發(fā)方案?和響應(yīng)式建筑相似,Web設(shè)計(jì)同樣應(yīng)該做到根據(jù)不同設(shè)備環(huán)境自動(dòng)響應(yīng)及調(diào)整。

顯然,我們無(wú)法也無(wú)需使用運(yùn)動(dòng)傳感器或是機(jī)器人技術(shù),響應(yīng)式Web設(shè)計(jì)更多需要的是抽象思維。好在,一些相關(guān)的概念已經(jīng)得到了實(shí)踐,比如液態(tài)布局、幫助頁(yè)面重新格式化的media queries和腳本等。但是響應(yīng)式Web設(shè)計(jì)不僅僅是關(guān)于屏幕分辨率自適應(yīng)以及自動(dòng)縮放的圖片等等,它更像是一種對(duì)于設(shè)計(jì)的全新思維模式。

一切彈性化:

我們通過響應(yīng)式的設(shè)計(jì)和開發(fā)思路讓頁(yè)面更加"彈性"了。圖片的尺寸可以被自動(dòng)調(diào)整,頁(yè)面布局再不會(huì)被破壞。雖然永遠(yuǎn)沒有最完美的解決方案,但它給了我們更多選擇。無(wú)論用戶切換設(shè)備的屏幕定向方式,還是從臺(tái)式機(jī)屏幕轉(zhuǎn)到iPad上瀏覽,頁(yè)面都會(huì)真正的富有彈性。通過液態(tài)網(wǎng)格和液態(tài)圖片技術(shù),并且在正確的地方使用了正確的HTML標(biāo)記。

響應(yīng)式圖片:

響應(yīng)式圖片技術(shù)思想:不僅要同比的縮放圖片,還要在小設(shè)備上降低圖片自身的分辨率。這個(gè)技術(shù)的實(shí)現(xiàn)需要使用幾個(gè)相關(guān)文件,我們可以在Github上獲取。包括一個(gè)JavaScript文件(rwd-images.js),一個(gè).htaccess文件,以及一些范例資源文件。大致的原理是,rwd-images.js會(huì)檢測(cè)當(dāng)前設(shè)備的屏幕分辨率,如果是大屏幕設(shè)備,則向頁(yè)面head部分中添加BASE標(biāo)記,并將后續(xù)的圖片、腳本和樣式表加載請(qǐng)求定向到一個(gè)虛擬路徑"/rwd-router"。當(dāng)這些請(qǐng)求到達(dá)服務(wù)器端,.htacces文件會(huì)決定這些請(qǐng)求所需要的是原始圖片還是小尺寸的"響應(yīng)式圖片",并進(jìn)行相應(yīng)的反饋輸出。對(duì)于小屏幕的移動(dòng)設(shè)備,原始尺寸的大圖片永遠(yuǎn)不會(huì)被用到。