打印

[翻译]具有亲和力的表格

复制内容到剪贴板
代码:
翻译自:A CSS styled table
原文:http://veerle.duoh.com/comments.php?id=315_0_2_0_C
版权归原作者所有
这个翻译的页面版权所有,授权蓝色理想。转载请注明出处
在前一段时间制作了CSS calendar,然后我就想用css制作一个table的模型,该模型遵循亲和力规则,而且有良好的
视觉效果.



图:颜色的选择和搭配

这样做的好处是:
    利用表格来装载数据,不言而喻是最好的,你可以很灵活的为每个单元格定义样式。
下面是具体的做法

首先在photoshop设计一个效果出来,通过对各种颜色,小图标等的常识,做出了一个效果令人满意的效果图来。
下一步呢,裁处下面三个图片来作为标题的背景图片,如果你对颜色的把握不是很好的话,这里给你提供一些
调色工具
http://www.snook.ca/technical/colour_contrast/colour.html
http://veerle.duoh.com/comments.php?id=108_0_2_20_C8

     bg_header.jpg
     bullet1.gif
     bullet2.gif

数据结构为
复制内容到剪贴板
代码:
<table id="mytable" cellspacing="0" summary="The technical
specifications of the Apple PowerMac G5 series">
<caption>Table 1: Power Mac G5 tech specs </caption>
<tr>
  <th scope="col" abbr="Configurations" class="nobg">Configurations</th>
  <th scope="col" abbr="Dual 1.8GHz">Dual 1.8GHz</th>
  <th scope="col" abbr="Dual 2GHz">Dual 2GHz</th>
  <th scope="col" abbr="Dual 2.5GHz">Dual 2GHz</th>
</tr>
<tr>
  <th scope="row" class="spec">Model</th>
  <td>M9454LL/A</td>
  <td>M9455LL/A</td>
  <td>M9457LL/A</td>
</tr>
...
可以看到我用了scope 属性来确保这个表格在无视觉效果的浏览器下展示出更好的效果,这个属性定义标题元素包含的
标题内容是否为 行 (scope="col") 或 列(scope="row") 。

下面是CSS的内容

对于上面的标题,使用和背景来更好的区分出他们
复制内容到剪贴板
代码:
th {
    font: bold 11px "Trebuchet MS", Verdana, Arial, Helvetica,
    sans-serif;
    color: #6D929B;
    border-right: 1px solid #C1DAD7;
    border-bottom: 1px solid #C1DAD7;
    border-top: 1px solid #C1DAD7;
    letter-spacing: 2px;
    text-transform: uppercase;
    text-align: left;
    padding: 6px 6px 6px 12px;
    background: #CAE8EA url(images/bg_header.jpg) no-repeat;
}
th.nobg {
    border-top: 0;
    border-left: 0;
    border-right: 1px solid #C1DAD7;
    background: none;
}
下面定义左侧的标题样式
复制内容到剪贴板
代码:
th.spec {    
    border-left: 1px solid #C1DAD7;
    border-top: 0;
    background: #fff url(images/bullet1.gif) no-repeat;
    font: bold 10px "Trebuchet MS", Verdana, Arial, Helvetica,
    sans-serif;
}
th.specalt {
    border-left: 1px solid #C1DAD7;
    border-top: 0;
    background: #f5fafa url(images/bullet2.gif) no-repeat;
    font: bold 10px "Trebuchet MS", Verdana, Arial, Helvetica,
    sans-serif;
    color: #B4AA9D;
}
这里的数据来自于MAC的technical specifications of each Power Mac G5|http://www.apple.com/powermac/specs.html
下来定义普通的和重要的数据内容
复制内容到剪贴板
代码:
td {
    border-right: 1px solid #C1DAD7;
    border-bottom: 1px solid #C1DAD7;
    background: #fff;
    padding: 6px 6px 6px 12px;
    color: #6D929B;
}
td.alt {
    background: #F5FAFA;
    color: #B4AA9D;
}
至此,整个制作过程结束了
查看表格效果
查看CSS文件

译者的话:这个页面经我测试通过W3C标准严格型验证,而且兼容IE,Firefox,Opera等主流浏览器,对于大量数据,可以利用js实现行两种背景交替显示。
本帖最近评分记录
blog Web标准化交流会 WEB标准群:46077068
其实 caption 和 legend 一样,很难用CSS做出很完美的效果,所以通常我都是 caption: display: none,标题另起