- neodreamer
- 评论(2)
作者:R.Christie
来源:21号楼
译者提示:编辑器会过滤掉样式内容,因此下面这些表格实际效果请点击原文或者下载源代码包查看。
表格已 经成为网页中最难进行样式设计的对象之一,这要怪它的标签非常晦涩,需要注意细节的地方太多,还有就是它对浏览器的兼容性不好。单单在一个表格,我们可能 就会耗费上许多时间,哪怕它仅仅它只是一个非常简单的表格。而这就是本文所要一显身手的地方。本文接下来将给你展示十个最容易运用的CSS表格设计,以便 读者您方便对表格进行样式设计。

首先第一件事
我们以一个通过xhtml 1.0 strict验证的表格为例。下面就是这个通过验证的表格的内容
<!-- Table markup-->
<table id="...">
<!-- Table header -->
<thead>
<tr>
<th scope="col" id="...">...</th>
...
</tr>
</thead>
<!-- Table footer -->
<tfoot>
<tr>
<td>...</td>
</tr>
</tfoot>
<!-- Table body -->
<tbody>
<tr>
<td>...</td>
...
</tr>
...
</tbody>
</table>
你可以在HTML Dog站 点上的表格一栏了解更多Xhtml的表格标签。我已经在Mozilla的 Firefox3,IE6和IE7 ,opera 9.x and Safari浏览器下测试过了这些表格。另外需要注意的是,为给文章一个统一的外观,所有这些表格都使用了浅蓝色的配色方案。你可更改这个配色方案,以满 足你你站点的需要——在文章的下方,我也提供一个源代码的打包下载链接(link)。
在我们开始之 前,让我们回顾一下对表格设置样式时所用到的基本经验法则:
- 表格适 合留空白:根据内容,小心设置表格的宽度。如果你不知道表格最佳的宽度,你只需将将表格的宽度设置为100%。当表格有“过宽的宽度“时,它们才 会更好看。而且宽的表格绝对要比窄的表格好看。
- 表格单 元需要一些边内补白的宽度。的确,每个表格单元都彼此相关。但是这也不意味着我们需要将把它们堆挤在一起,是吧?给表格单元之间定义一个留白宽度 吧。拥挤的表格单元是非常不便于阅读的。
- 以你对 待内容的方式对待表格。我们阅读表格的方式与我 们阅读文本的方式非常相似——只是我们阅读表格要花更多的时间,阅读的难度也要更大。应此要注意你表格的明暗对比度。使用浅色——它对眼睛有好处。不要它 你的表格当成一个图形装饰品。在对表格设置CSS样式时,要注意内容的易读性,而不要反其道而行之。
现在我们准备的 差不多了,接下来让我们开始吧,OK?
1,横向简约风格
横向表格是指读 者横向阅读而非纵向阅读的表格。每个实体内容都是一行。对于这类表格,我们可以使用简约风格的样式来对表格进行设置。我们只需对表格单元(td和th)设 置足够的边内留白(Padding),并则在表头(th)下面设置一个2像素的下边框即可。
| Employee | Salary | Bonus | Supervisor |
|---|---|---|---|
| Stephen C. Cox | $300 | $50 | Bob |
| Josephin Tan | $150 | - | Annie |
| Joyce Ming | $200 | $35 | Andy |
| James A. Pentel | $175 | $25 | Annie |
因为横向的表格 都应该是供人水平扫视的,清除表格的边框可以增加该表格的阅读效率。不过,因为没有边框,如果遇到行数比较多的情况, 这种表格设计就不便于阅读的。要解决这个问题,我们只需在所有的td元素下面添加1像素的下边框即可(见下表).
| Employee | Salary | Bonus | Supervisor |
|---|---|---|---|
| Stephen C. Cox | $300 | $50 | Bob |
| Josephin Tan | $150 | - | Annie |
| Joyce Ming | $200 | $35 | Andy |
| James A. Pentel | $175 | $25 | Annie |
tr:hover规则对于辅助人们阅读表格是非常有用的。当鼠标光标悬停某个单元格上时,这行的所有单元格都会以醒目的方式显示出来,当你 表格有多行时,这招会让追踪变的非常方便。
重要!
注意对表格单元 间的留白以及排版进行调整。
优点
样式设计简单, 适合简单的表格。
缺点
str:hover 在IE6下不起作用,表格列数过多时,容易让人混淆。
可自己尝试调整 的地方
配色方案,文字 排版,以及tr:hover的效果。
2,纵向简约风格
尽管很少用到, 纵向表格对于事物的分类或是对比却非常有用,每个实体的内容都由一列来表示。我们可以通过添加列与列之间的空白分割区间来对表格进行简约简约风格的样式设 计。
| Comedy | Adventure | Action | Children |
|---|---|---|---|
| Scary Movie | Indiana Jones | The Punisher | Wall-E |
| Epic Movie | Star Wars | Bad Boys | Madagascar |
| Spartan | LOTR | Die Hard | Finding Nemo |
| Dr. Dolittle | The Mummy | 300 | A Bug’s Life |
添加大数值的border-left和border-right,把颜色边框颜色设置成与背景一样的颜色。如果你想使用透明的边框也可以,不过IE6不 支持。因为这种表格应该是从上往下读的(垂直的),添加 tr:hove对此不会有所帮助,相反它会让数据不易阅读。 不过可能有一个Javascript的解决方案,当鼠标悬停(Mouserover)事件触发时,该方法可以让你将整列的内容突出显示出来,但是这超出了 本文的讨论范围。
重要!
注意对表格单元 间的留白以及排版进行调整,不要添加 tr:hover 效果。
优点
样式设置简单, 适合简单的表格。
缺点
如果背景颜色不 是实块状的颜色(Solid Block),此办法就不能使用。另外就是它仅是和部分表格。
可自己尝试调整 的地方
配色方案和排版
3,框格样式
所有样式中最可 靠的一个,框格样式适合所有类型的表格。挑选一个好看的配色方案,然后把background-color属性设置给 所有单元格。别忘了把边框作为分割物(separator),以突出不同单元格之间的不同之处。下面就是一个框格样式的表格。
| Employee | Salary | Bonus | Supervisor |
|---|---|---|---|
| Stephen C. Cox | $300 | $50 | Bob |
| Josephin Tan | $150 | - | Annie |
| Joyce Ming | $200 | $35 | Andy |
| James A. Pentel | $175 | $25 | Annie |
| Comedy | Adventure | Action | Children |
|---|---|---|---|
| Scary Movie | Indiana Jones | The Punisher | Wall-E |
| Epic Movie | Star Wars | Bad Boys | Madagascar |
| Spartan | LOTR | Die Hard | Finding Nemo |
| Dr. Dolittle | The Mummy | 300 | A Bug’s Life |
这种样式可能式 目前使用的最多的样式。这种样式棘手的地方就在与要找到一个与你网站颜色相匹配的颜色搭配风格。如果你网站上图案应用的比较多,那么要应用这种样式难度式 相当大的。
重要!
选择一个与你网 站颜色相配的配色方案。
优点
很容易设置样 式,对于大表或是小表都能很好的适应。
缺点
选择一个完美的 配色方案非常之难。
可自己尝试调整 的地方
颜色,边框(可 以使用dashed 或dotted 实现一些不错的效果),排版,图标
4, 横向斑纹式的风格
斑纹式的表格非 常有好看,而也很有用,交替的背景颜色也可以作为视觉提示,方便人眼扫描表格。要设置一个斑纹式的表格,只需给每个奇数的tr标签添加一个class="odd",然后为其定义一个样式(比如,在PHP中,你可以这样写 if ($count % 2) then even class else odd class)
...
<tr class="odd">
<td>...</td>
...
</tr>
<tr>
<td>...</td>
...
</tr>
...
| Employee | Salary | Bonus | Supervisor |
|---|---|---|---|
| Stephen C. Cox | $300 | $50 | Bob |
| Josephin Tan | $150 | - | Annie |
| Joyce Ming | $200 | $35 | Andy |
| James A. Pentel | $175 | $25 | Annie |
优点
斑纹样式可以放 帮助肉眼扫描表格
缺点
对于大表而言, 手工添加class="odd" 可能会非常繁琐。许多内容管理系统(CMS)并不提供奇偶循环来创建表格,而且 挑选皮配色方案也非常棘手。
用户可调整的内 容
对比颜色,边 框,排版,图标
5,纵向斑纹风格
纵向斑纹风格的 表格是一个比横向斑纹表格更容易进行样式设置的表格,我们可以利用colgroup 和 col 元素来对列进行分类。不过表格标签会变得有点繁琐。
<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>
colgroup 元素实际上会在列的范围内对 表格应用样式。对于开头的td或th元素,我们不用繁琐的使用class,我们可以使用一个更方面的colgroup 标签。想了解更多有关colgroup标签信息,可以访问这个页面(link)。
| Comedy | Adventure | Action | Children |
|---|---|---|---|
| Scary Movie | Indiana Jones | The Punisher | Wall-E |
| Epic Movie | Star Wars | Bad Boys | Madagascar |
| Spartan | LOTR | Die Hard | Finding Nemo |
| Dr. Dolittle | The Mummy | 300 | A Bug’s Life |
虽然这种样式的 表格更适合纵向的表格,但是它也可以用于任何其他种类的表格。
重要!
斑纹的颜色不要 设置过高的对比度,要保护读者的眼睛。
优点
适合所有类型的 表 格。
缺点
选择颜色搭配方 案可能会有些难度,需要添加colgroup元素。
可自己尝试摸索 的地方
对比颜色,边 框,colgroup 和 col,图标,以及排版。
6, 单列突出风格
在一些表格中, 有些特定的列相对其他列有一个更高的权重。在这种情况下,我们可以使用colgroup 和col 来让这列突出出来。在下面的这个例子中,首列是作为一个阅读的起点,因此它需要突出,这点跟我们对段落的首个字母进行大写下沉是一个道理。
| Company | Q1 | Q2 | Q3 | Q4 |
|---|---|---|---|---|
| Microsoft | 20.3 | 30.5 | 23.5 | 40.3 |
| 50.2 | 40.63 | 45.23 | 39.3 | |
| Apple | 25.4 | 30.2 | 33.3 | 36.7 |
| IBM | 20.4 | 15.6 | 22.3 | 29.3 |
你可以使用单列 突出的技巧来对重要的内容进行强调,,比如,会计表格中包含有合计数目的列,或是在对照表中——比如电脑规格的对照表中,突出胜出的那列
重要!
注 意,不要做的太过火了,突出的列不要出现的太突出,不然会干扰读 者阅读其他列。
优点
在某些类型的表中,这种样式设计非 常有效。
缺点
tr:hover 效果在IE下没办法工作,它也仅仅只适合某些类型的表。
可自己调整摸索的地方
色彩方案,排版,图标以及tr:hover 的效果。
7,报纸风格
为了实现这种所 谓的报纸风格,我们需要对表格(table)元素设置边框(border),然后再对内部的单元格进行调整。下面就是一个简约的报纸风格的表格。
| Company | Q1 | Q2 | Q3 | Q4 |
|---|---|---|---|---|
| Microsoft | 20.3 | 30.5 | 23.5 | 40.3 |
| 50.2 | 40.63 | 45.23 | 39.3 | |
| Apple | 25.4 | 30.2 | 33.3 | 36.7 |
| IBM | 20.4 | 15.6 | 22.3 | 29.3 |
可以尝试调整配 色方案,边框,边内留白,背景以及单元格 tr:hover的效果。下面就是与上面不同的一个表格样式。
| Company | Q1 | Q2 | Q3 | Q4 |
|---|---|---|---|---|
| The above data were fictional and made up, please do not sue me | ||||
| Microsoft | 20.3 | 30.5 | 23.5 | 40.3 |
| 50.2 | 40.63 | 45.23 | 39.3 | |
| Apple | 25.4 | 30.2 | 33.3 | 36.7 |
| IBM | 20.4 | 15.6 | 22.3 | 29.3 |
| FAVORITE | GREAT | NICE | BAD |
|---|---|---|---|
| Passion of the Christ | Bourne Ultimatum | Shoot ‘Em Up | Ali |
| The Big Fish | The Mummy | Apocalypto | Monster |
| Shawshank Redemption | Cold Mountain | Indiana Jones | Dead or Alive |
| Greatest Story Ever Told | I Am Legend | Star Wars | Saw 3 |
重要!
要注意border- collapse,不 要忘记添加表格外围的表框。
优点
给表格带来一种高雅和权威感觉。
缺点
不适合大的表格(表过大时,它会失去自身的美丽)
可调整的地方
排版,颜色搭配,背景,边框,边内留白,以及tr:hover 效果
8,圆角风格
圆角风格很光滑 也很现代,而且它也很容易应用到表格上,不过你需要发动下PS来完成这个人物。为你的 表格创建四个圆角。理论上你可以利用桥套的tr 和 td元素来讲对表格进行左右圆角的设置,而不用添加而外的标签。悲剧的事,IE6在这里又发飙了,表格会变得 超难看,因而,最恰当的办法就是对表格四个角上的单元格设置ID或class.请看下面这个例子。
| Company | Q1 | Q2 | Q3 | Q4 |
|---|---|---|---|---|
| The above data were fictional and made up, please do not sue me | ||||
| Microsoft | 20.3 | 30.5 | 23.5 | 40.3 |
| 50.2 | 40.63 | 45.23 | 39.3 | |
| Apple | 25.4 | 30.2 | 33.3 | 36.7 |
| IBM | 20.4 | 15.6 | 22.3 | 29.3 |
优点
如果你想制作一个非传统的表格,上面这种非常不错,另外如果你的网站大量使用圆角,这种表格可能是你唯一可行的方案。
缺点
样式设置要耗费更多的时间,需要图片辅助
可调整的地方
配色方案,圆角的表花,排版以及tr:hover 效果,图标
9,有背景的 CSS表格
如果你正在寻找一种对表格进行样式设置的独特而快捷的方式的话,你只需挑选一张与主题相关并却非常有吸引的图片或 是照片,然后将其设置为table的background-image (表格背景图片),你可以添加灰度为50%的png图片作为单元格的背景图片,以便改善可读性。不过为了使其在IE6下工作,我们需要使用电CSS- hack技巧
| 1 | * html table tbody td |
| 2 | { |
| 3 |
| 4 | /* IE CSS Filter Hack goes here*/ |
| 5 |
| 6 | } |
表格看起来会像像下面这模样。
| Employee | Division | Suggestions | |
|---|---|---|---|
| IE 6 users won’t see the transparent background if the hack is not applied | |||
| Stephen C. Cox | Marketing | Make discount offers | |
| Josephin Tan | Advertising | Give bonuses | |
| Joyce Ming | Marketing | New designs | |
| James A. Pentel | Marketing | Better Packaging | |
重要!
请确保图片是与表格内容相关的。
优点
样式的设置非常容易,可以呈现一种独特的外观,如果图片应用恰当的话,它会给读者留下深刻的印象。
缺点
在IE6下,需要使用CSS-hack技巧。需要图片。
可调整的地方
背景图片,透明的PNG图像,排版,颜色,和图标
10,单元格背景
你可以对单元格 应用background-image 并获得一致的外观效果。比如,你如果有半个多小时的空闲时间,并且也不想太无聊。你可以起打开PS然后制作1像素宽的渐变图片(gradients),然 后所有单元的背景都设置为该图片。你最后就会得到一个颜色渐变风格的表格。
| Employee | Division | Suggestions | Rating |
|---|---|---|---|
| Give background color to the table cells to achieve seamless transition | |||
| Stephen C. Cox | Marketing | Make discount offers | 3/10 |
| Josephin Tan | Advertising | Give bonuses | 5/10 |
| Joyce Ming | Marketing | New designs | 8/10 |
| James A. Pentel | Marketing | Better Packaging | 8/10 |
类似的,挑选一 个图样,然后将其设置为背景图片,你会最终就会得到一个图样风格的表格。
| Employee | Salary | Bonus | Supervisor |
|---|---|---|---|
| Stephen C. Cox | $300 | $50 | Bob |
| Josephin Tan | $150 | - | Annie |
| Joyce Ming | $200 | $35 | Andy |
| James A. Pentel | $175 | $25 | Annie |
| Nation | Capital | Language | Unique |
|---|---|---|---|
| Japan | Tokyo | Japanese | Karate |
| South Korea | Seoul | Korean | Ginseng |
| China | Beijing | Mandarin | Kung-Fu |
| Indonesia | Jakarta | Indonesian | Batik |
重要!
确保文字在背景下能凸显出来
优点
样式设置简单,不显得乏味。
缺点
需要使用图片,背景图样和渐变图片可能会干扰阅读。
可调整的地方
配色方案,图样,排版,边框,背景,渐变图片,图标。
写在最后的话
我也深知本文只 是做了一个肤浅的研究,所以读者可以下载源文件,自己尝试。读者可以随意贴上你最新换的表 格设计,尤其是那些我可能漏掉的。现在该你们上场了。
neodreamer
这类文章的排版真是问题,一般的编辑器都会限制或者过滤一些标签,然后一些效果就没了。