首先澄清一個應(yīng)用場景問題。研究(1)中指出,對于結(jié)構(gòu)復(fù)雜的網(wǎng)站,不少設(shè)計師們喜歡采用960固定寬度布局。但要注意的是,960并不是萬能鑰匙,大部分網(wǎng)站沒有也不需要柵格系統(tǒng)。Amazon采用的是寬度自適應(yīng)布局,最大限度的呈現(xiàn)信息。Google更是簡簡單單,主題部分就一個列表。eBay的頁面非常簡潔,商品頁面寬度自適應(yīng),信息自然流暢,噪音少,購物很踏實。類似的站點還有很多,對于這些站點來說,寬度自適應(yīng)布局更受青睞。

有個很有意思的網(wǎng)站是Yahoo!, 看起來是固定寬度布局,實際上在CSS中只要去掉一行,就能搖身一變自適應(yīng)寬度了:

#page {
    width: 70em;
}

為什么Yahoo!最后選擇了定寬布局呢?這很可能是因為定寬布局比寬度自適應(yīng)布局更容易控制。對于結(jié)構(gòu)復(fù)雜的網(wǎng)站來說,可維護性和可擴展性非常重要。Yahoo!是以信息展示為主的門戶型網(wǎng)站,960的寬度對于信息的閱讀比較友善(Joe Clark寫了一篇屏幕閱讀時有關(guān)行長的有趣文章)。種種因素使得Yahoo!最后采用了定寬布局(Tommy Olsson總結(jié)了每種布局設(shè)計的優(yōu)缺點)。

這里將只關(guān)注定寬布局,適用的場景是搭建復(fù)雜的門戶型網(wǎng)站。對于寬度自適應(yīng)布局和相應(yīng)的柵格系統(tǒng),暫不討論(根據(jù)實現(xiàn)的技術(shù)手段不同,寬度自適應(yīng)布局又分為流體布局和彈性布局。我個人蠻喜歡彈性布局,以后有時間再研究)。

好了,已經(jīng)將范圍縮小到定寬布局的網(wǎng)頁柵格系統(tǒng),那我們開始吧。

并不遙遠的750

還記得800×600的顯示器不?雖然才時隔幾年,感覺卻好像是上個世紀的事了。Mark Boulton做了最早的探索:

將750分割成均等的6份,這就形成了柵格系統(tǒng),稍加組合劃分就形成了兩欄布局和三欄布局。Mark Boulton還研究了Gutter(垂直欄之間的間隙)對柵格的影響,有興趣的可以閱讀原文,或者跟著我往下看吧,下面將詳細闡述。

幾個術(shù)語和一個公式

一個標準的柵格系統(tǒng),包括以下部分:

將Flowline的總寬度標記為W, Column的寬度標記為c, Gutter寬度標記為g, Margin的寬度標記為m, Column的個數(shù)標記為N, 我們可以得到以下公式:

W = c * N + g * (N - 1) + 2 * m

一般來說,Gutter的寬度是Margin的兩倍,上面的公式可以簡化為:

W = c * N + g * (N - 1) + g = (c + g) * N

將c+g標記為C, 公式變得非常簡單:

W = C * N

上面的公式就是柵格系統(tǒng)的基礎(chǔ),很簡單吧。

950的來歷

具體應(yīng)用時,Margin其實是一個空白邊,從視覺上看并不屬于總寬度。不少柵格設(shè)計里習(xí)慣性地設(shè)定Gutter為10px, 這樣Margin就是5px. 當(dāng)W為960,分割成6列時,柵格如下圖:

上圖的處理是左右Margin各為5px. 也可以將Margin集中放在一邊,比如右邊:

無論Margin放在何處(這只影響技術(shù)實現(xiàn),不影響設(shè)計),我們真正要關(guān)注的是去除Margin之后的部分:

這就是我們要真正關(guān)注的950!將W的含義變?yōu)槿コ齅argin的總寬度,公式變化為:

W = N * C - g

將上面的公式實例化一下:

950 = 12 * 80 - 10
950 = 16 * 60 - 10
950 = 24 * 40 - 10

這就形成了960蛋糕的三種常見切法。

12 x 80


16 x 60


24 x 40


上面三種切法,N越大,靈活度越高??梢愿鶕?jù)網(wǎng)頁的實際復(fù)雜度來選用對應(yīng)的切法。在960 Grid System首頁中,展示了12 x 80的應(yīng)用:

我們來看下 研究(1)中開頭列舉的網(wǎng)站的柵格應(yīng)用情況。

Yahoo!是很標準的 24 x 40 柵格:

淘寶網(wǎng)目前只有商城上部分使用了柵格系統(tǒng)(大的兩欄布局遵守了 24 x 40 的柵格化,主體部分使用的另一套740的柵格劃分):

網(wǎng)易很不錯,采用的是 16 x 60 的柵格系統(tǒng):

研究(1)中的其它站點都沒有真正嚴格地采用柵格系統(tǒng)。

柵格系統(tǒng)的優(yōu)勢

上面的“發(fā)現(xiàn)”是讓人有點沮喪的。目前嚴格采用柵格系統(tǒng)的站點非常少,為什么我們還要努力的讓網(wǎng)頁柵格化呢?

柵格系統(tǒng)具有以下優(yōu)勢:

  1. 能大大提高網(wǎng)頁的規(guī)范性。在柵格系統(tǒng)下,頁面中所有組件的尺寸都是有規(guī)律的。這對于大型網(wǎng)站的開發(fā)和維護來說,能節(jié)約不少成本。
  2. 基于柵格進行設(shè)計,可以讓整個網(wǎng)站各個頁面的布局保持一致。這能增加頁面的相似度,提升用戶體驗
  3. 對于設(shè)計師們來說,靈活地運用柵格系統(tǒng),能做出很多優(yōu)秀和獨特的設(shè)計。(詳見《超越CSS》一書)

對于大型網(wǎng)站來說,我相信柵格化將是一種潮流和趨勢。

下面討論柵格系統(tǒng)中的黃金分割。

黃金分割

黃金分割可以歸結(jié)為數(shù)學(xué)問題:對于長度為1的線段,將其分成兩部分 x 和 1 - x, 使得:

x / 1 = (1 - x) / x

化為簡單的二次方程:

x^2 + x - 1 = 0

正數(shù)解為:

x = (sqrt(5) - 1) / 2 ~= 0.618

這就是黃金分割。這個比例不僅僅出現(xiàn)在諸如繪畫、雕塑、音樂、建筑等藝術(shù)領(lǐng)域,在管理、工程設(shè)計等方面也有著不可忽視的作用。 (這是個自然界的魔數(shù),類似的還有真空光速、普朗克常數(shù)、精細結(jié)構(gòu)等等,感興趣的Google吧)

在平面設(shè)計領(lǐng)域,黃金分割點被廣泛采用。比如下面這種圖:

數(shù)一數(shù)上面有多少黃金分割?

960柵格,實際寬度是950. 對于 24 x 40 的情景,最接近黃金分割的兩欄布局是 350 : 590, 欄數(shù)比例為 9 : 15:

但實際使用時,因為窄欄經(jīng)常用來做導(dǎo)航或放輔助信息,并不需要350px這么寬。因此實際情況下經(jīng)常被采用的布局是:

上面講的都是寬度方向上的柵格化,下面我們看看高度方向上如何應(yīng)用。

高度方向上的柵格

還記得研究(1)中那張紅紅的很刺眼的圖嗎?注意高度值560也是很神奇的。

N(560) = N(2^4 * 5 * 7) = 18
560 / 960 ~= 0.583

N(560)比較大,同時可以讓高寬比接近黃金分割。針對560, 我們采用 14 x 40 柵格:

這樣,我們就在寬度和高度兩個方向上都實現(xiàn)了柵格化。然而,柵格化真的就這么簡單嗎?請關(guān)注下一篇,我們將詳細探討柵格化的粒度問題。

原文:http://lifesinger.org/blog/?p=400