4. 结构和表现
当讨论Web标准时,一些事情总是被提及,那就是结构和表现分离的重要性。刚开始的时候理解结构和表现的不同之处可能很困难,特别是如果你不习惯于思考文档的语义结构时。然而,理解这点是很重要的,因为,当结构和表现分离后,用CSS文档来控制表现就是很容易的一件事了。
结构是由文档中的主体部分,再加上语义化、结构化的标记。
表现是你赋予内容的一种样式。在大多数情况下,表现就是文档看起来的样子,但是它同样可以影响一个文档“听”起来的样子----毕竟不是每个人使用的都是图像化的浏览器。
尽可能的把结构和表现相分离。理论上讲,你应该用一个HTML文档来保存内容与结构,用一个CSS文档来控制整个文档的表现。
如今表现与结构的分离在网上还不是很普遍。大多数网站上的HTML代码既缺少语义也缺少结构。
用表格布局
为了使表现和结构相分离,你必须用CSS来代替表格去控制一个文档的表现。当你习惯于用表格来布局的时候,这将使你感觉很奇怪很不适应,但是,这并不像它看上去的那么困难。你可以在网上找到许多可用的帮助,它的好处太多了,所以它确实值得您去花时间去转变一下思想,这点很重要。
相关文章:
Why tables for layout is stupid
在Seybold 2003上的一个演讲幻灯演示
语义化的HTML
分离结构与表现的另一个重要方面是使用语义化的标记来构造文档内容。一个XHTML元素的存在就意味被标记内容的那部分有相应的结构化的意义,没有理由使用其他的标记。换句话说,不要让CSS使一个HTML元素看起来就像另一个HTML元素,比如用<s pan>来代替<h1>标记标题。
通过使用语义化的HTML,你将会使文档中的不同部分对于任何浏览器都变得有意义,无论浏览器是现今PC上的最新的图象化浏览器,还是不支持CSS的老浏览器,或者还是Unix shell中的文本浏览器。
标题
为了给标题做标记, 要用<h1>、<h2>、 <h3>、<h4>、<h5>或者 <h6>,这完全取决于标题的等级。<h1>是最高的等级。
例如:
<h1>文档标题</h1>
<h2>次级标题</h2>
文档标题
次级标题
段落
用<p>来标记段落。不要使用 <br /> 来生成段落间的空行。用CSS来控制段落间的空隙(Margins),这个空隙可以确保段落标记的正确无误。
例如:
<p>浪奔浪流,万里滔滔江水永不休,淘尽了世间事,混作滔滔一片潮流,是喜是愁,浪里分不清欢笑悲忧,成功失败,浪里看不出有未有。爱你恨你问君知否,似大江一发不收,转千湾转千滩,也未平复此中争斗,又有喜又有愁,就算分不清欢笑悲忧,仍愿翻百千浪,在我心中起伏够。</p>
浪奔浪流,万里滔滔江水永不休,淘尽了世间事,混作滔滔一片潮流,是喜是愁,浪里分不清欢笑悲忧,成功失败,浪里看不出有未有。爱你恨你问君知否,似大江一发不收,转千湾转千滩,也未平复此中争斗,又有喜又有愁,就算分不清欢笑悲忧,仍愿翻百千浪,在我心中起伏够。
列表
一些事物的罗列应使用列表来显示。在XHTML中有三种列表的方法:无序、有序和自定义。
无序列表, 就是我们所熟知的圆圈列表, 以 <ul>开始,以</ul>结束。每一个列表项都包含在<li>之中。
有序列表,以<ol>开始,以 </ol>结束。
自定义列表有一些不同,可以用来标记一些列表项和描述,以<dl>开始,以 </dl>结束。每一个被描述的项目,要包含在<dt>中,而描述的内容要包含在<dd>中。
例如:
<ul>
<li>项目一</li>
<li>项目二</li>
<li>项目三</li>
</ul>
项目一
项目二
项目三
<ol>
<li>项目一</li>
<li>项目二</li>
<li>项目三</li>
</ol>
项目一
项目二
项目三
<dl>
<dt>上海滩</dt>
<dd>这部拍摄于1980年的《上海滩》堪称是香港电视史上最成功、最经典的剧集。
当年在香港播出以后,产生了巨大的轰动效应。</dd>
<dt>周润发</dt>
<dd>和所有伟大的影星一样,周润发印证了一个时代,一个香港电影的黄金时代。
风衣墨镜、冷血双枪、阳光微笑,都封存胶片之中,当我们回首寻望的时候,发哥已被刻为一个时代的坐标。</dd>
</dl>上海滩
这部拍摄于1980年的《上海滩》堪称是香港电视史上最成功、最经典的剧集。 当年在香港播出以后,产生了巨大的轰动效应。
周润发
和所有伟大的影星一样,周润发印证了一个时代,一个香港电影的黄金时代。 风衣墨镜、冷血双枪、阳光微笑,都封存胶片之中,当我们回首寻望的时候,发哥已被刻为一个时代的坐标
CSS使你不想用传统列表来呈现内容成为可能。导航栏(一个链接的列表)就是一个很好的例子。使用列表作为菜单的好处是当一个浏览器不支持CSS时,这个菜单仍然起作用。