realazy


表格的web标准解决方案(一)

来自Dan Cederholm的Web Standards Solutions: The Markup and Style Handbook的第三章Tables are Evil?,事关表格在web标准下的正确使用。我利用工作的空余时间,将这一章节完全翻译奉上。今天送上A Table that Everyone Can Sit At,还不是很精彩。

待翻译完整章后我会整理成传承标准的一个栏目。由于工作关系,大伙不要催我,我会自觉完成的。:)

完全表格式

完全没有理由不用表格来标记表格式的数据。但是等等,什么叫表格式数据?这是一些例子:

  • 日历
  • 电子数据表
  • 制图
  • 时间进度表

这些例子和其他更多的,(不使用表格的话)可能需要很多CSS高难度技术来标记以便看起来像是一个表格。你可以想象一下,试着用狡诈的CSS规则来浮动和定位每一项,但往往只能以沮丧的结局告终。不要说没有CSS就能精确的读出数据是一个恶梦。事实是,我们不应该害怕表格——并且应该在正确的场合使用它们。

人人适合的表格

表格受到谴责的一个原因是,如果使用不小心,它们会导致易用性的问题。比如,屏幕阅读器要正确读取十分艰难,小屏幕设备常常因用以布局的表格而备受干扰。但是还有一些细小的事情我们可以做到,以提高数据表格的易用性,同时创建了一个苗条的结构,然后可以轻易地用CSS来样式化。

让我们来看看一个简单的表格例子,如图,描述了一支美国棒球队的长期战败。

wp-content/images/table_sample.jpg

尽管Red Sox迷看到会极度失望,但这还是一个极为完美表格式数据的例子。有三个表格头部(Header),包括Year, Opponent, and Season Record (W-L),跟随着该队四年中表现的数据。表格之上的是说明(Caption),定义表格所包含的内容。

标记这样的数据表格是很直截了当的,我们可能会这样做:

<p align="center">Boston Red Sox World Series Championships</p>
<table>
  <tr>
     <td align="center"><b>Year</b></td>
     <td align="center"><b>Opponent</b></td>

     <td align="center"><b>Season Record (W-L)</b></td>

  </tr>
  <tr>
     <td>1918</td>

     <td>Chicago Cubs</td>
     <td>75-51</td>
  </tr>
  <tr>
     <td>1916</td>

     <td>Brooklyn Robins</td>
     <td>91-63</td>
  </tr>
  <tr>
     <td>1915</td>

     <td>Philadelphia Phillies</td>
     <td>101-50</td>
  </tr>
  <tr>
     <td>1912</td>

     <td>New York Giants</td>
     <td>105-47</td>
  </tr>
</table>

这将会产生跟图十分接近的效果,但是,有些东西我们还可以改进。

首先,我们马上可以把表格的标题”Boston Red Sox World Series Championships” ,修正成更具语义性的<caption>标签。<caption>需要马上跟随<table>起始标签之后,通常包含标题,和/或说明在表格内的内容的本质。

显而易见地,表格地用意很容易为视力正常的人们所理解,同时能够帮助使用非可视化工具浏览的人。

让我们用恰当的<caption>来取代开始的段落吧:

<table>
  <caption>Boston Red Sox World Series Championships</caption>
  <tr>

     <td align="center"><b>Year</b></td>
     <td align="center"><b>Opponent</b></td>
     <td align="center"><b>Season Record (W-L)</b></td>

  </tr>
  <tr>
     <td>1918</td>
     <td>Chicago Cubs</td>
     <td>75-51</td>

  </tr>
  <tr>
     <td>1916</td>
     <td>Brooklyn Robins</td>
     <td>91-63</td>

  </tr>
  <tr>
     <td>1915</td>
     <td>Philadelphia Phillies</td>
     <td>101-50</td>

  </tr>
  <tr>
     <td>1912</td>
     <td>New York Giants</td>
     <td>105-47</td>

  </tr>
</table>

用以传递表格内容信息的说明是很重要的。默认下,大部分可视化浏览器将会把<caption>标签内的文字放置在表格上方中间处。我们可以,当然,更改默认的样式——后面我们还有例子演示。现在只需了解,表格本身独特的标签让这更漂亮和简单。

8 Responses to “表格的web标准解决方案(一)”

  1. fei Says:

    不错的翻译,期待后文。

  2. x5 Says:

    不错啊~
    或许有空应该把roger那篇经典的http://www.456bereastreet.com/archive/200410/bring_on_the_tables/
    翻译一下:-p

    另,名字怎么改成“南方农民”了?

  3. Neo Says:

    Roger的那一篇是够经典的,不过对初学者还是有一定的难度……我现在翻译的这章比较浅显,循序渐进,老少咸宜……或许以后会翻译Roger的做成表格进阶……

    “南方农民”这个名字不好么?:)
    我跟农民脱不了干系了 :D

  4. xsl Says:

    是呀!也要照顾一下我们这些初学者嘛!
    看了很多HTML标准方面的文章,可是都觉得不太完善……,
    有没有可能,把所有的HTML标准和CSS标准(主要是标签的意思)完全整理一下?像英语课本后的单词表一样?用时查一下,我最近正在帮忙修改一个模板,嘿嘿……很低级吧?别笑我,谁都是从这会来的。
    我的想法也许会被人笑弱智,但我觉得如果有上面那么一张表的话,对我一个初学者来说,很有用……
    其实也有类似的,但他们整理的很不全面,我知道你一定有这个能力!
    也知道你可能很忙,可是要想推动标准,对“后辈”的支持,也很重要呀!
    不管能不能有这个“表”出现!都谢啦!!

    辽宁
    xu

  5. Neo Says:

    我给你推荐两个:HTML TagsCSS Properties。这两个参考都比较简单,应该可以看懂……

    我原来有计划翻译整理出来的,不过我现在工作中,业余时间也没有电脑使用……

  6. hugo Says:

    这本书有E文的电子版么?哪里可以找到呢?thks

  7. Neo Says:

    请使用Google搜索“Web Standards Solutions: The Markup and Style Handbook 下载”,可以找到……

  8. xu Says:

    谢谢!工作要紧!^_^,好在这个世界上还有金山词霸!
    这两天忙别的,没及时道谢!多包涵!

Leave a Reply


realazy (懒到死) is proudly powered by WordPress | Entries (RSS) and Comments (RSS)