網(wǎng)頁設(shè)計中的布局

2018-8-9    ui設(shè)計分享達(dá)人

如果您想訂閱本博客內(nèi)容,每天自動發(fā)到您的郵箱中, 請點(diǎn)這里


先說下設(shè)計視角吧,這個最貼近設(shè)計師,比較好理解。


設(shè)計視角主要是從網(wǎng)頁的排版角度去進(jìn)行分類,大致分為四種:上下布局、左右布局、國字形布局和T字形布局。


上下布局是最常見的布局方式,基本上都會在最上方有一個導(dǎo)航,下方是內(nèi)容區(qū),有的官網(wǎng)還會有頁腳footer,站酷就是上下布局。左右布局在后臺類、TO B類產(chǎn)品中比較常見,一般左側(cè)為側(cè)邊欄,右側(cè)為內(nèi)容區(qū)。國字形布局和T字形布局其實(shí)算作上下布局,只不過比較典型,可以單拎出來作為一種布局類型。



接下來我們來看下前端視角的布局方法


首先為什么要了解些前端的布局方式呢,直接甩給前端一個設(shè)計稿,讓他去實(shí)現(xiàn)不就行了?其實(shí)這涉及到的是設(shè)計和開發(fā)之間的協(xié)作關(guān)系,一個有規(guī)律有規(guī)范的設(shè)計稿,前端實(shí)現(xiàn)起來更加容易,也方便他管理自己的代碼,實(shí)現(xiàn)出來的樣式也會更靈活,在出設(shè)計稿之前和前端溝通一下,采用什么布局方式,需要設(shè)計怎么配合,也費(fèi)不了多少工夫。當(dāng)然直接甩個設(shè)計稿,前端也能實(shí)現(xiàn),但一些特殊效果真的是需要雙方合作才能完成的。


廢話不多說

前端視角主要是指實(shí)現(xiàn)頁面的各種CSS布局方式,我這里主要?dú)w納了5種:靜態(tài)布局、流式布局、響應(yīng)式布局、彈性布局和Flex布局。除了靜態(tài)布局,其他都能實(shí)現(xiàn)在不同分辨率下頁面的自適應(yīng),來給用戶最佳的視覺呈現(xiàn)。


靜態(tài)布局(static layout)


靜態(tài)布局也叫做固定布局,網(wǎng)頁內(nèi)容區(qū)采?絕對寬度,網(wǎng)頁內(nèi)每個模塊的尺寸大小固定,一般整體在瀏覽器內(nèi)居中顯示,并會設(shè)置最小寬度min-width,當(dāng)分辨率小于最小寬度就會出現(xiàn)滾動條,如果大于最小寬度則內(nèi)容居中外加背景 。


找了一個很古老的網(wǎng)站,大家看看就好。。。


應(yīng)用場景:目前大部分的高校官網(wǎng)、醫(yī)院官網(wǎng)、政府網(wǎng)站等都是靜態(tài)布局,而且設(shè)計風(fēng)格上也很老舊,你們懂得,當(dāng)然并不是說靜態(tài)布局的風(fēng)格就是老舊,這個布局和設(shè)計風(fēng)格沒有多大關(guān)系哈,有很多新聞門戶類、企業(yè)官網(wǎng)等網(wǎng)站采用靜態(tài)布局,同樣也很出彩。

優(yōu)點(diǎn):這種布局方式對設(shè)計師和前端來說都是最簡單的,不用去考慮兼容性等問題。設(shè)計和開發(fā)成本低,后期維護(hù)成本低。

缺點(diǎn):在小屏上有可能出現(xiàn)橫向滾動條,在大屏上會出現(xiàn)大量的空白,不能根據(jù)用戶的屏幕尺寸做出不同的表現(xiàn),用戶體驗(yàn)比較差。 




流式布局(fluid layout )


流式布局英文fluid layout,也可以翻譯成liquid layout,是指頁面按照百分比%定義寬度(也就是長度單位不是我們平常使用的px,而是百分?jǐn)?shù)),來適配不同的屏幕分辨率,在不同的分辨率下網(wǎng)頁布局保持不變,一般搭配min-、max-屬性來控制尺寸流動范圍,以免過大或者過小影響展示和閱讀,頁面內(nèi)元素的高度和文字大小往往px來固定住,方便頁面排版和閱讀。


流式布局的特點(diǎn)是,如果寬度太小,放不下兩個元素,后面的元素會自動滾動到前面元素的下方,不會在水平方向overflow(溢出),避免了水平滾動條的出現(xiàn)。

圖片來自ant design


應(yīng)用場景:流式布局典型的代表是柵格系統(tǒng),一般頁面中采用百分比定寬的部分都可以看做是流動布局的屬性。目前大部分網(wǎng)頁為了實(shí)現(xiàn)更好的視覺效果都會全局或局部使用流式布局。

優(yōu)點(diǎn):在不同分辨率屏幕上能夠很好的展示頁面元素,如果設(shè)計得當(dāng),流動布局能避免在小屏幕上出現(xiàn)水平滾動條,對于差別不是很大的屏幕分辨率十分友好。

缺點(diǎn):當(dāng)屏幕分辨率差異過大時,因?yàn)閷挾仁褂?百分比定義,但是高度和文字大小等大都是用px來固定,有些頁面元素寬度被拉的很高,頁面縮小后,一些字或者圖片或者圖表等會產(chǎn)生堆疊,顯示效果不太好控制。



響應(yīng)式布局(responsive layout )


響應(yīng)式布局是指網(wǎng)頁分別為不同的屏幕分辨率定義不同的布局,同時在每個布局中,各元素大小采用百分比定義寬度,即頁面元素寬度隨著窗口調(diào)整而自動適配。可以看做是定義了幾個不同尺寸的流式布局。


布局特點(diǎn):基于柵格系統(tǒng)設(shè)計和開發(fā),通過監(jiān)測設(shè)備的分辨率來呈現(xiàn)不同的布局。Bootstrap(一個前端代碼庫)的響應(yīng)式設(shè)計中,預(yù)設(shè)了六個響應(yīng)尺寸:xs、sm、 md 、lg、 xl、  xxl, 當(dāng)屏幕分辨率較高時采用XL或者XXL的布局,當(dāng)屏幕過小時,采用XS的布局。


網(wǎng)站示例:Uplabs網(wǎng)站就是基于柵格系統(tǒng)進(jìn)行了響應(yīng)式布局,寬屏模式下展示更多內(nèi)容,包括上方的引導(dǎo)區(qū)和各種標(biāo)簽入口,當(dāng)在小屏上市就折疊部分內(nèi)容,同時作品縮略圖也實(shí)現(xiàn)了基于柵格進(jìn)行放大和縮小。



優(yōu)點(diǎn):能夠適應(yīng)pc、pad和移動端,在任何尺寸的屏幕上都能呈現(xiàn)完美的視覺效果

缺點(diǎn):要匹配足夠多的屏幕大小,需要設(shè)計多個版本,設(shè)計和開發(fā)工作量大


因?yàn)樽罱谧鲈O(shè)計規(guī)范,無意中發(fā)現(xiàn)shopify的設(shè)計規(guī)范的示例中設(shè)計了四種尺寸的設(shè)計稿:1440px、1024px、776px、320px,所以還是繁瑣的。(這么多版本,設(shè)計和開發(fā)會吐血吧)


下面是響應(yīng)式布局的一些網(wǎng)站:Bootstrap(https://getbootstrap.com/)、Uplabs(https://www.uplabs.com/)、Ant Design(https://ant.design/components/grid-cn/



彈性布局(em/rem layout)


彈性布局翻譯過來不是em/rem layout ,因?yàn)閺椥圆季植捎玫膯挝皇莈m或者rem,為了直觀,所以直接采用了單位縮寫去區(qū)分。

em和rem是一個相對長度單位,頁面內(nèi)各元素的尺寸采用em/rem做單位,em是相對其父元素大小,rem是始終相對于html大小,即頁面根元素。(有點(diǎn)看不懂是吧,沒關(guān)系,你只需要他是個相對長度單位就行了)


布局特點(diǎn):采用em或者rem為單位,頁面元素能夠根據(jù)屏幕分辨率進(jìn)行等比縮放,支持文字、間距類等比縮放,國內(nèi)PC端網(wǎng)頁不咋用,在國外已經(jīng)很普遍,比較適用于移動端H5的適配


MINX網(wǎng)站采用了em為單位,進(jìn)行了彈性布局,當(dāng)屏幕分辨率差別不是很大時,視覺效果還是不錯的。


優(yōu)點(diǎn):彈性適配不同的分辨率,視覺效果比較好,而且不用出多套設(shè)計稿,是不是很爽!

缺點(diǎn):em以父節(jié)點(diǎn)font-size大小為參考點(diǎn),進(jìn)行任何元素設(shè)置,都需要知道他父元素的大小,容易造成頁面排版混亂,rem支持的瀏覽器比較少。


還是上面的網(wǎng)站,當(dāng)頁面繼續(xù)縮小,會出現(xiàn)元素的疊加,所以em單位使用時不太好把控效果。


看了好多國外的網(wǎng)站,發(fā)現(xiàn)彈性布局還是很普遍的,彈性布局示例網(wǎng)站:https://minx-net.co.jp/

https://northstreetcreative.com/

https://clearleft.com/



Flex布局


個人理解的,felx布局主要是用來定義頁面內(nèi)某些元素相對于父級元素的對齊、排序、分布等排版方式,通過調(diào)整父級內(nèi)元素的寬高,從而在任何顯示設(shè)備上實(shí)現(xiàn)對可用顯示空間最佳填充的能力。

圖片來自ant design


我個人覺得flex布局比較適合模塊內(nèi)元素的布局,算不上整個頁面級別的布局。


優(yōu)點(diǎn):能夠很好的契合移動端,無需考慮分辨率問題,移動端flex布局占據(jù)主流

缺點(diǎn):PC端網(wǎng)頁兼容性不好,ie瀏覽器必須是10.0版本以上;對設(shè)計稿要求很高,需要是有規(guī)律的設(shè)計稿,比如柵格系統(tǒng);網(wǎng)頁內(nèi)容較多時,flex布局不太好控制。


我個人找到的知乎是用了Flex布局,但是他進(jìn)行了頁面定寬,所以很多效果看不出來



個人總結(jié)了下各種布局的關(guān)系


流動布局可以看做是靜態(tài)布局的動態(tài)版,響應(yīng)式布局可以看做是幾個不同尺寸的流動布局,在每個流動布局之間進(jìn)行自適應(yīng)。流動布局、響應(yīng)式布局、彈性布局和flex布局都能實(shí)現(xiàn)自適應(yīng)的效果,只不過彈性布局是用em/rem為單位,流動布局和響應(yīng)式布局是以百分比為單位,flex由于兼容性問題,PC端不太常用。

各種布局不是絕對的,可以綜合使用,目的都是使頁面在不同分辨率的設(shè)備上實(shí)現(xiàn)更好的用戶體驗(yàn),針對不同性質(zhì)的網(wǎng)站采用合適的布局方式。

我這里將柵格設(shè)計放了進(jìn)來,但實(shí)際上,頁面布局可以基于柵格也可以不基于柵格,完全看設(shè)計師個人和實(shí)際工作場景了。



----------------------------------------------------------------------------



看完布局,你會發(fā)現(xiàn),很多國內(nèi)常用的布局都和柵格有關(guān),有些網(wǎng)頁設(shè)計師在做的時候也喜歡用柵格來規(guī)范自己的設(shè)計稿,所以我簡單的梳理了一下柵格的小知識,希望對大家有用。


首先,柵格化設(shè)計(grid-design )不等于柵格化開發(fā)(css grid )。我之前一直以為用柵格就要實(shí)現(xiàn)網(wǎng)頁的響應(yīng)式,由于我們是to b類的網(wǎng)站,所以剛開始很抵觸,總覺得沒法定寬設(shè)計某個模塊,后來查了些資料才發(fā)現(xiàn),這是兩回事。

柵格化設(shè)計是針對設(shè)計師而言,主要是為了提高網(wǎng)頁的規(guī)范性和統(tǒng)一性,可以不考慮頁面的響應(yīng)式;而柵格化開發(fā),是針對開發(fā)人員,特指前端攻城獅使用的css框架,用來實(shí)現(xiàn)頁面的響應(yīng)式布局。也就是你可以按照柵格去出設(shè)計稿,但不一定基于柵格開發(fā),基于柵格開發(fā)意味著需要實(shí)現(xiàn)網(wǎng)頁響應(yīng)式布局。


那么柵格是什么,想必大家都很清楚,就是將網(wǎng)頁劃分為幾個等分欄。大概就長下面這樣

柵格包括列寬(column)、間隔(gutter)和外邊框margin,gutter是左右均分,分別位于列寬的兩側(cè),margin是位于整個網(wǎng)頁的兩側(cè)的空白區(qū),由1/2的gutter和一個padding組成,一般來說網(wǎng)頁的總寬度是不包含左右兩側(cè)的margin的。


柵格系統(tǒng)的適配


一般來說,適配時,間距gutter寬度不變,只會改變列寬column,但是在material design中定義了多種寬度的gutter,當(dāng)寬屏?xí)r使用16或者24px的gutter,窄屏使用8px的gutter,所以可以根據(jù)實(shí)際情況自己定義是否改變gutter寬度。


柵格的類型


我個人將柵格歸為了4類:有間隔柵格、無間隔柵格、局部柵格、水平柵格。有間隔柵格最為常見,無間隔柵格也就是gutter為0,局部柵格一般適用于頁面內(nèi)有側(cè)邊欄固定的布局,側(cè)邊欄可以不算入柵格范圍,水平柵格是指垂直和水平都進(jìn)行柵格,感覺不太常用。


柵格常見分欄


12欄和24欄是最常見的,因?yàn)槟軌虮?、3、4、6整除,也就是頁面能夠均分為2、3、4、6等份,其次是16列比較常見。列數(shù)越多,排版布局越靈活,列數(shù)越少限制性越大,同時頁面的統(tǒng)一性更強(qiáng) ??梢愿鶕?jù)網(wǎng)頁特點(diǎn)選擇合適的欄數(shù),不必拘泥。

下圖是經(jīng)典的960柵格系統(tǒng)

日歷

鏈接

個人資料

存檔