表格恐怕是 Web 設(shè)計(jì)中最困難的一個(gè)對(duì)象了,感謝神秘的標(biāo)記語(yǔ)言,有太多的細(xì)節(jié)我們需要關(guān)注了,而且表格缺乏瀏覽器的兼容性。雖然表格只是一個(gè)簡(jiǎn)單的元素,但是它浪費(fèi)了我們大量的時(shí)間。有人甚至說(shuō),
標(biāo)簽是垃圾。其實(shí)表格本身并沒(méi)有什么,是你自己使用的不當(dāng),把簡(jiǎn)單的事情弄的復(fù)雜了。這就是我寫下本篇文章的原因,它將向你展示十個(gè)最簡(jiǎn)單表格設(shè)計(jì)方法。
準(zhǔn)備
想必大家都知道 xhtml 1.0 strict 標(biāo)準(zhǔn),下面是一個(gè)符合 xhtml 1.0 strict 標(biāo)準(zhǔn)的例子。
-
- <table id="..." border="0">
-
-
- <thead>
- <tr>
- <th id="..." scope="col">...</th>
- ...
- </tr>
- </thead>
-
- <tbody>
- <tr>
- <td>...</td>
- ...
- </tr>
- ...
- </tbody>
-
- <tfoot>
- <tr>
- <td>...</td>
- </tr>
- </tfoot>
- </table>
<!-- Table markup-->
<table id="..." border="0">
<!-- Table header -->
<thead>
<tr>
<th id="..." scope="col">...</th>
...
</tr>
</thead>
<!-- Table body -->
<tbody>
<tr>
<td>...</td>
...
</tr>
...
</tbody>
<!-- Table footer -->
<tfoot>
<tr>
<td>...</td>
</tr>
</tfoot>
</table>
在我們開始之前,溫習(xí)一下所謂的使用表格的規(guī)則:
- 表格的寬度
根據(jù)內(nèi)容,小心的設(shè)置表格的寬度,如果你不知道確切的寬度的話,設(shè)置成100%準(zhǔn)沒(méi)錯(cuò)。如果內(nèi)容很多把表格撐的很大的時(shí)候,把表格的寬度設(shè)置的大一些肯定比小一些要好看的多。
- 給 td 加點(diǎn) padding
雖然在表格中 td 的排列很整齊,但是這并不是說(shuō),我們要把它們排列地很緊湊,給它們點(diǎn)間距,這樣看起來(lái)就不那么難以閱讀了。
- 表格就是文字
閱讀表格與閱讀文字是很類似的,而且會(huì)花費(fèi)更多的時(shí)間去理解表格。所以當(dāng)表格中有金額的時(shí)候,注意它的對(duì)比度。使用柔和的顏色,使之看起來(lái)更舒服一些??傊贡砀竦娘L(fēng)格更容易閱讀,而不是相反。
好,下面我們開始進(jìn)入正題。
1. 水平簡(jiǎn)約型
所謂水平表格,顧名思義,就是水平地去看表格而不是豎直地看,它每一行都代表一個(gè)實(shí)體。你可以給這種表格設(shè)置最簡(jiǎn)約的風(fēng)格:簡(jiǎn)單地給單元格(td and th )設(shè)置足夠的 padding ,在表頭下設(shè)置2個(gè)像素的邊框。

因?yàn)樗奖砀袷潜幻啃忻啃械拈喿x,所以清楚的行邊界會(huì)起到事半功倍的效果。如果沒(méi)有行邊界,而且行數(shù)很多的情況下,表格閱讀起來(lái)是很困難的。所以下面的表格中,我給每個(gè) td 下加了一個(gè)像素的下邊界。

請(qǐng)注意 tr:hover 一個(gè)很有用的輔助人們閱讀表格的方法。當(dāng)鼠標(biāo)停留在一個(gè)單元格上時(shí),這個(gè)單元格所在的行就會(huì)被標(biāo)亮。如果表格有很多列時(shí)候,這個(gè)方法會(huì)很容易的追蹤到你關(guān)注的行。
- 重點(diǎn)
- 仔細(xì)調(diào)整單元格之間的間距
- 優(yōu)點(diǎn)
- 很簡(jiǎn)單的設(shè)計(jì),對(duì)于簡(jiǎn)單的表格很合適
- 缺點(diǎn)
tr:hover 在IE6下不能使用, 如果表格有很多的列,看起來(lái)會(huì)很混亂
2. 豎直簡(jiǎn)約型
雖然使用很少,但豎直簡(jiǎn)約型表格經(jīng)常用于分類或比較對(duì)象的描述,每一列代表的一個(gè)實(shí)體。我們可以在豎直簡(jiǎn)約型表格列之間加入空格來(lái)進(jìn)行分隔。

最好加上大數(shù)值的 border-left 和 border-right ,使用相同的顏色作為背景色。如果你愿意可以使用透明邊框,但是IE6會(huì)把表格弄的面目全非。因?yàn)樨Q直簡(jiǎn)約型表格中,數(shù)據(jù)被從上到下(豎直)閱讀的,所以添加 tr:hover 毫無(wú)用處,反而會(huì)使表格更難以理解。當(dāng)然可以使用基于 JavaScript 解決方案,當(dāng)鼠標(biāo)移動(dòng)到某列時(shí),使其高亮顯示,但是這超出了本文討論的范圍。
- 重點(diǎn)
- 仔細(xì)調(diào)整單元格之間的填充距離, 不要添加
tr:hover
- 有點(diǎn)
- 很簡(jiǎn)單的設(shè)計(jì),對(duì)于簡(jiǎn)單的表格很合適
- 缺點(diǎn)
- 如果背景色不是色塊型的,不要使用豎直簡(jiǎn)約型表格,它僅僅適合一部分 Table
3. 方塊型
所有表格風(fēng)格中最常用的,方塊風(fēng)格適用于各種類型的表格,挑選出一個(gè)好的顏色方案,分配給所有單元格的 background-color 。別忘了定義 border 來(lái)區(qū)分各個(gè)單元格。下面是方塊型表格的例子:


這種風(fēng)格,可能是目前最常用的方式。最難的問(wèn)題實(shí)際上是找到與你的網(wǎng)站匹配的配色方案。如果你的網(wǎng)站上的圖像比較深沉,使用這種方式將比較困難。
- 重點(diǎn)
- 挑選與網(wǎng)站適合的色彩
- 優(yōu)點(diǎn)
- 容易設(shè)計(jì),數(shù)據(jù)多和數(shù)據(jù)少的表格都適合
- 缺點(diǎn)
- 挑選完美的色彩會(huì)很困難
4. 水平間隔型
水平間隔型表格具有很強(qiáng)的吸引力和使用性。當(dāng)閱讀表格時(shí),交替的背景色會(huì)使人感到很舒服。在設(shè)計(jì)水平間隔型表格時(shí),只要簡(jiǎn)單地給每奇數(shù)行 tr 定義 class="odd" 。
- ...
-
- <tr class="odd">
- <td>...</td>
- ...
- </tr>
-
- <tr>
- <td>...</td>
- ...
- </tr>
-
- ...
...
<tr class="odd">
<td>...</td>
...
</tr>
<tr>
<td>...</td>
...
</tr>
...

- 重點(diǎn)
- 千萬(wàn)別用太多的間隔色,會(huì)把用戶眼睛弄得很不舒服
- 優(yōu)點(diǎn)
- 間隔模式會(huì)幫助用戶更容易的閱讀表格數(shù)據(jù)
- 缺點(diǎn)
- 給很大的表格添加
class="odd" 是件很乏味的事情,在大多數(shù)情況下,你必須手工完成它。
5. 豎直間隔型
豎直間隔比水平間隔更容易定義,因?yàn)槲覀兛梢允褂?colgroup 和 col 這兩個(gè)元素屬性來(lái)定義不同列的 CSS 。但是代碼與其他類型比起來(lái),有點(diǎn)復(fù)雜了:
colgroup 元素適用于定義表格的 CSS ,我們可以使用它來(lái)代替給每個(gè) td 或者 th 添加 class 。
- <table>
-
-
- <colgroup>
- <col class="vzebra-odd">
- <col class="vzebra-even">
- <col class="vzebra-odd">
- <col class="vzebra-even">
- </colgroup>
-
-
- <thead>
- <tr>
- <th scope="col" id="vzebra-comedy">Employee</th>
- ...
- </tr>
- </thead>
- ...
- </table>
<table>
<!-- Colgroup -->
<colgroup>
<col class="vzebra-odd">
<col class="vzebra-even">
<col class="vzebra-odd">
<col class="vzebra-even">
</colgroup>
<!-- Table header -->
<thead>
<tr>
<th scope="col" id="vzebra-comedy">Employee</th>
...
</tr>
</thead>
...
</table>

雖然豎直間隔型可能更適合面向豎直表格,但是其他類型表格也可以采用這種風(fēng)格。
- 重點(diǎn)
- 千萬(wàn)別用太多的間隔色,會(huì)把用戶眼睛弄得很不舒服
- 優(yōu)點(diǎn)
- 適合所有類型表格
- 缺點(diǎn)
- 選擇色彩方案會(huì)很困難,想要添加
colgroup 元素
6. 重點(diǎn)列型
在某些表格中,有些列比其他列更加重要,在這種情況下,可以使用 colgroup 和 col 來(lái)標(biāo)注重點(diǎn)列。在下面的例子中,首列被標(biāo)示為重點(diǎn)列,使其更容易被關(guān)注。

你可以使用一個(gè)重點(diǎn)列來(lái)標(biāo)示重點(diǎn),比如說(shuō)一個(gè)會(huì)計(jì)表格中的金額總計(jì),或者一個(gè)比較表格中獲勝的實(shí)體。
- 重點(diǎn)
- 要注意,不要過(guò)分強(qiáng)調(diào)重點(diǎn)性,這樣會(huì)分散其它列的閱讀
- 優(yōu)點(diǎn)
- 對(duì)某些特定類型的表格特別有效
- 缺點(diǎn)
- 因?yàn)?
tr:hover 在 IE 下無(wú)效,所以這種類型只適用于特定類型的表格
7. 報(bào)紙型
要達(dá)到所謂的報(bào)紙型的效果,需要給表格添加邊框,而在邊框內(nèi)部展示內(nèi)容。一個(gè)簡(jiǎn)約的報(bào)紙型表格如下所示:

變換單元格((td and th ))色彩,邊框,邊距,背景色和 tr:hover 效果后,其它風(fēng)格的報(bào)紙型表格如下所示:


- 重點(diǎn)
- 注意
border-collapse ,不要丟失表格的外部邊框
- 優(yōu)點(diǎn)
- 給表格賦予了一種很有權(quán)威的風(fēng)格
- 缺點(diǎn)
- 對(duì)于較大的表不適合(會(huì)失去它的魅力)
8. 圓角型
圓角給人的感覺(jué)是很光滑很有現(xiàn)代感,很容易就可以把圓角應(yīng)用到一個(gè)表格上,但是你需要為這些圓角創(chuàng)建圖像。理論上,在不需要額外的標(biāo)記就可以給 tr 和 td 添加圓角,但是IE6下,它會(huì)變得很一片混亂。所以最穩(wěn)定的方法是把圓角圖片置于表格的四個(gè)角。請(qǐng)參考下面的例子:

- 優(yōu)點(diǎn)
- 如果你的網(wǎng)站大量使用圓角,而且你喜歡非傳統(tǒng)風(fēng)格的表格,這可能是你唯一的選擇。/dd>
- 缺點(diǎn)
- 花費(fèi)時(shí)間比較長(zhǎng),需要圖片
9.背景圖片型
如果你想很快且有特色的定義表格的風(fēng)格,那么就簡(jiǎn)單的挑選出一個(gè)有吸引力的圖片作為表格的背景。你也可以使用50%的灰度來(lái)定義單元格的背景圖片,來(lái)提高可讀性。你可以使用下面的 CSS -hack 技術(shù)是它能夠在IE6下正常工作。
- * html table tbody td
- {
-
- /* IE CSS Filter Hack goes here*/
-
- }
* html table tbody td
{
/* IE CSS Filter Hack goes here*/
}
表格例子如下:

- 重點(diǎn)
- 確定背景圖片符合表格的內(nèi)容
- 優(yōu)點(diǎn)
- 很容易的定制,提供了獨(dú)特的外觀,如果正確使用,該圖像可以作為一個(gè)符號(hào),讓用戶留下難忘的印象
- 缺點(diǎn)
- 在IE6下需要 CSS -hack,需要提供圖片
10. 單元格背景色型
你可以給單元格添加背景圖片,實(shí)現(xiàn)一致的風(fēng)格。這樣你至少要花費(fèi)半個(gè)小時(shí)才能得到你想要的東西,打開 Photoshop,生成一個(gè)像素大小的漸變圖片,把它們?cè)O(shè)置為單元格的背景圖片,這樣你就得到了一個(gè)漸變效果的表格。

同樣,選擇一個(gè)模式,并將其設(shè)置為背景圖片,可以得到一個(gè)模式風(fēng)格的表格:


注:有幾種表格需要背景圖片和CSS的支持,論壇顯示不出來(lái),請(qǐng)參考 我的博客
|