響應(yīng)式Web設(shè)計(jì): 布局

2022-07-11    分類: 網(wǎng)站建設(shè)

去年上半年,我開(kāi)始著手推動(dòng)項(xiàng)目中響應(yīng)式設(shè)計(jì)的落地。以官網(wǎng)優(yōu)化需求為契機(jī),主動(dòng)去做了響應(yīng)式的頁(yè)面設(shè)計(jì),也說(shuō)服了產(chǎn)品、設(shè)計(jì)和開(kāi)發(fā)的相關(guān)同事一起把它上線落實(shí),但不幸的是,由于各種方面的原因,比如,生搬硬套的PC模塊,無(wú)差異化的設(shè)計(jì)使得移動(dòng)端閱讀不佳,導(dǎo)航兼容性有限等等原因,上線幾個(gè)月后又悄然下線。我不禁反思,項(xiàng)目中是否應(yīng)該推行響應(yīng)式?今年年初重新啟動(dòng)了全站響應(yīng)式項(xiàng)目,從產(chǎn)品、交互、視覺(jué)到開(kāi)發(fā),各個(gè)角色全方面參與了響應(yīng)式項(xiàng)目,最終門戶的頁(yè)面實(shí)現(xiàn)全面響應(yīng)式。在項(xiàng)目過(guò)程中有技術(shù)沉淀,也有不少的思考,也就有了以下的文字。文章的內(nèi)容圍繞四個(gè)方面,響應(yīng)式的概念,實(shí)踐方法,一些案例,以及一些看法。

概念

Ehan Marcotte 為A List Apart寫過(guò)一篇介紹型的文章 <響應(yīng)式網(wǎng)頁(yè)設(shè)計(jì)> 。文中講到響應(yīng)式的概念源自響應(yīng)式建筑設(shè)計(jì),即房間或者空間會(huì)根據(jù)其內(nèi)部人群數(shù)量和流動(dòng)而變化。

[最近一門新興的學(xué)科“響應(yīng)式建筑(responsive architecture)”開(kāi)始在探討物理空間根據(jù)流動(dòng)于其中的人進(jìn)行響應(yīng)的方法。建筑師們通過(guò)把嵌入式機(jī)器人與可拉伸材料結(jié)合的方法,嘗試藝術(shù)裝置和可彎曲、伸縮和擴(kuò)展的墻體結(jié)構(gòu),達(dá)到根據(jù)接近人群的情況變化的效果。運(yùn)動(dòng)傳感器與氣候控制系統(tǒng)相結(jié)合,調(diào)整圍繞人們周圍的房間的溫度以及環(huán)境照明。已經(jīng)有公司制造了“智能玻璃技術(shù)”,當(dāng)室內(nèi)人數(shù)達(dá)到一定的閥值時(shí),它可以自動(dòng)變?yōu)椴煌该鳡顟B(tài),為人們提供更多隱私保護(hù)。]

Web響應(yīng)式設(shè)計(jì)的概念與之也非常相似。在如今技術(shù)飛快發(fā)展的時(shí)代,一向是以快論英雄,設(shè)備和分辨率日新月異,就以分類相對(duì)明晰的iPhone為例,就有多達(dá)4種的分辨率和屏幕尺寸,更別提廠商蓬勃發(fā)展的安卓機(jī)領(lǐng)域。因此,為每種設(shè)備或者特定設(shè)備分辨率制定相應(yīng)的獨(dú)立版本是非常費(fèi)時(shí)費(fèi)力的事情。

Web響應(yīng)式設(shè)計(jì)的理念,應(yīng)當(dāng)是,頁(yè)面可以根據(jù)用戶的設(shè)備環(huán)境,包括系統(tǒng),分辨率,屏幕尺寸等等因素,進(jìn)行自發(fā)式調(diào)整,提供更適合當(dāng)前環(huán)境的閱讀和操作體驗(yàn),對(duì)已有和未來(lái)即將出現(xiàn)的新設(shè)備有一定的適應(yīng)能力。

實(shí)踐

有了概念,一定要談?wù)剬?shí)現(xiàn)的方法。類似于響應(yīng)式建筑,Web頁(yè)面也有對(duì)應(yīng)關(guān)鍵因素。

可彎曲、伸縮、擴(kuò)展的墻體結(jié)構(gòu)——可擴(kuò)展的布局;

運(yùn)動(dòng)傳感器——MediaQuery;

氣候控制系統(tǒng)——柵格;

藝術(shù)裝置——css等等。

以上給了我寫文章的脈絡(luò)結(jié)構(gòu)靈感,于是先從最基礎(chǔ)的布局談起。

可擴(kuò)展的布局

有一種流體布局的概念在早起web興起的時(shí),就開(kāi)始盛行了。它的概念是說(shuō)頁(yè)面會(huì)根據(jù)瀏覽器窗口的變化進(jìn)行更改,網(wǎng)站可以通過(guò)維護(hù)一套代碼,保質(zhì)一致性的設(shè)計(jì)。我這里強(qiáng)調(diào)的可擴(kuò)展的布局也是基于這個(gè)概念,只是現(xiàn)在的方法多種多樣,因此要強(qiáng)調(diào)頁(yè)面布局的可擴(kuò)展性。

可擴(kuò)展的布局途徑有很多,比如常見(jiàn)的百分比布局,以及一直未成為標(biāo)準(zhǔn)的柵格布局等等。

框架

就從這框架來(lái)說(shuō),以一個(gè)常見(jiàn)的可擴(kuò)展的三欄布局為例,就有數(shù)十種方法,這里拋磚引玉舉幾個(gè)例子。

方法1:

Demo1

方法2:

Demo2

方法3:

Demo3

方法4:

Demo4

方法5:

Demo5

方法6:

Demo6

方法7:

Demo7

方法8:

Demo8

方法9:

Demo9

除了上述總結(jié)的幾種,還有更多更多的方法。兩欄布局同理就不贅述。

此外W3C也有一個(gè)柵格化布局(Grid Layout)的規(guī)范,這個(gè)布局是基于兩維柵格系統(tǒng)設(shè)計(jì)的,可以輕松按照我們的意愿改變頁(yè)面的設(shè)計(jì)。它與Flexbox配合效果更佳。但目前仍處于草案階段。翻看了W3C的最新草案內(nèi)容,對(duì)Grid Layout的使用方法和原理簡(jiǎn)單介紹下。

1)定義grid:

首先在grid item外的父級(jí)容器上定義display: grid.

Values:

grid – 定義block-level的柵格;

inline – 定義 inline-level的柵格


2)一些相關(guān)概念:

grid lines – 是橫向和縱向劃分grid的線,它可以一朝數(shù)字順序被指定,也可以用用戶制定的名字被指定。

grid tracks – 指的是一個(gè)grid列或者行之前的區(qū)域,換而言之是兩個(gè)相鄰的grid lines之前的空間。下圖是第二行和第三行之間的grid tracks。

grid cells – 一個(gè)grid cell指的是grid中最小的單位。

grid areas – 是用來(lái)展現(xiàn)一個(gè)或多個(gè)grid item的邏輯空間。它被四條grid line包圍。

3)grid item 屬性

了解了一些基本概念后,就可以更加絨里理解相關(guān)的grid item屬性。

grid-column-start

grid-column-end

grid-row-start

grid-row-end

這四個(gè)屬性中,grid-column-start和grid-row-start指明區(qū)域起始線,grid-column-end和grid-row-end指明區(qū)域結(jié)束線。這四個(gè)屬性均有以下四個(gè)值可取。

Values:

<line> – 可以是一個(gè)數(shù)字,代表的是 grid line

span <number> – 該項(xiàng)會(huì)橫跨所提供的數(shù)字個(gè)grid tracks

span <name> – 該項(xiàng)會(huì)橫跨直到碰到下一個(gè)指定名字的grid line

auto – 自動(dòng)或者默認(rèn)屬性

舉個(gè)例子:

代表的區(qū)域就是:

除以上提到,grid還擁有更多的屬性,使之可以定義grid item的寬高,間隙,內(nèi)部自適應(yīng)的方式,對(duì)齊方式等等。更多屬性可以參考W3C文檔。

4)瀏覽器支持:

令人遺憾的是,瀏覽器的支持度還未盡人意,未來(lái)在UA上獲取更多支持才是Grid發(fā)展的根本。

框架搭建好,才僅僅是響應(yīng)式的開(kāi)始。但是俗語(yǔ)有云:Well begun is half done.  響應(yīng)式從做好的布局開(kāi)始。

當(dāng)前題目:響應(yīng)式Web設(shè)計(jì): 布局
地址分享:http://www.bm7419.com/news33/176583.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站維護(hù)、網(wǎng)站制作面包屑導(dǎo)航、小程序開(kāi)發(fā)、商城網(wǎng)站、標(biāo)簽優(yōu)化

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都做網(wǎng)站