论web标准的网页制作和符合web标准的网站UI(2)
Chapter 2 web标准真的是要完全不用表格?
好像是在2005年的时候,一篇叫做《把表格从你的网页中扔出去》(找不到文章的链接了,但确实有这篇文章)的在线文章,似乎给了人们一个错觉,要符合标准,那么表格在网页中就完全不能使用了。必须用div来代替。也许div+css这个概念就是这样被想当然的创造出来的(源自表格布局)。但事实上,web标准并不是完全不允许使用表格。而是要求摒弃使用表格来布局的做法。同时,也不再使用布局这个概念。而是提倡结构与表现分离。这时,就有一些人会产生一个疑惑,如果说xhtml代表结构,css用来控制表现,那么,布局该如何解决?相信现在接触web标准的朋友不会再有这个疑惑了吧?结构和表现结合起来就形成了布局。既然不能用表格来做布局了,那么表格还有什么用呢?似乎很多人忘了表格在html中的原始定义——展现结构化数据表格。举个例子,某学校班级的期中考试成绩表,这种数据,就是一个非常明显的表格。web标准中绝对没有要求你用div来模拟表格,那是非常蠢的做法。这几天在经典论坛上还看到有人产生这样的疑惑,表格形式的格式化数据,用表格比用div要方便的多,他们搞不懂为什么一定要用div来表现表格,现在我告诉你答案了,该用表格展现数据的时候就要用表格。 IT教学网
Chapter 3 为什么要用web标准?怎么样才算是符合web标准?
很多人会说例如兼容性好、代码易懂、代码量小、结构合理、甚至有人说使用标准可以实现比表格更丰富的样式等各种理由来支持web标准,而web标准也的确具有这些优点,然而,这些却并非web标准真正要做的。 Webjx.Com
并非把表格换成div就是符合web标准了。也并非使用xhtml和css就是符合web标准。甚至就算你的代码能够通过w3c的验证,也很难说它就完全符合web标准。事实上,web标准的最终目标不是为了让人容易看懂网页如果仅仅是为了让人容易看懂,那么表格布局已经足够了。它的最终目标是为了让计算机能够读懂网页。看下面几个例子:
表格布局的一段代码:
<table width="50%">
<tr>
<td width="30%"></td>
<td width="30%"><font size="3">web</font>标准的概念</td>
<td width="40%">如何实现<b>标准化制作</b></td>
</tr>
<tr>
<td colspan="3"><font color="red"><font size="3">web</font>标准在网页中的使用</font></td>
</table>
web标准(XHTML/CSS)实现的一段代码:
<h3><span>web</span>标准的概念</h3>
<h3>如何实现<em>标准化制作</em></h3>
<h3 class="important"><span>web</span>标准在网页中的使用</td>
web标准(XML)实现的另一段代码:
<articles>
<articletitle>web标准的概念</articletitle>
<articletitle em="4" emlegth="3">如何实现标准化制作</articletitle>
<articletitle level="important">web标准在网页中的使用</articletitle>
<articles>
看过以上几段代码后,我们先来分析一下。第一段是表格布局的代码,它把整块分成了两行,第一行用了三列,第一列是空的用于缩进,后面两列分别放了两篇文章的标题。其中的英文文字采用了不同于中文的字号。第二篇文章的标题上还有一部分是加粗强调的。第二行则是一篇文章的标题占用了整行,并且以红色显示文章标题。在页面展现出来之后,我们能够明白下面的信息:第一篇文章是普通文章,第二篇文章中有一个概念是很重要的。而第三篇文章则非常重要。然而,在代码中我们却很难看出这一点。因为没有人说过加粗就一定是强调。也没有人告诉我们红色就一定表示重要(如果是在暗红色背景下,它甚至表示不重要,光看代码是不知道页面展现出来是什么样子的,是否重要自然无从判断),在这段代码中甚至没有告诉我们,这几段文字是文章标题。
第二段代码就要清楚的多了,首先,h3标签告诉我们,它是一个标题。span标签完全没有含义,会被分析器忽略掉。而em标签则表示强调。程序很容易明白它究竟是什么。最后一行指定的的类important则可以告诉分析器,这篇文章十分重要。
最后,我们再看第三段中的XML代码,首先,articletitle已经明明白白的告诉我们,它是文章标题,多余的信息没有了。事实上多数情况下是否强调一段文字中某一个部分对于分析器来说并不重要。因此,加粗强调被放到了属性里面。最后一条,level属性非常明白告诉分析器,这个属性定义的是文章的级别。而它的属性important则告诉分析器,它的级别是重要。将来采用这种结构,我们的网络将会更加智能,而搜索引擎的搜索结果也将会更加准确。当然,好处远远不只是这些。
Webjx.Com
直到现在为止,第三段代码要想真正完美实现并且兼容,仍然只能停留在我们的梦想里。