XHTML Structured One: Using XHTML to Refactor Websites

我们曾经为本节撰写的标题是:“XHTML : 简单的规则,容易的方针。”原因之一是,本节讨论的规则和方针是简单和容易的。原因之二是,一本简单和容易的 WEB 设计图书,就像超级市场的新式的免费商品一样,虽然常见却可以有效地吸引人的眼球,这样的东西可以刺激人的兴趣,并且鼓励人们尝试。

我确实希望本节的内容可以激发你的兴趣,并鼓励你去尝试。为什么这么说呢?因为一旦你掌握了本章包含的简单容易的理念,你就会重新思考网页运作的方式,并开始改变建造它们的方法。然而我并不希望你只是将代码重新改写一遍。我希望你可以实实在在地以另一种方式思考和工作。

另一方面,重构才是 XHTML 真正的意义。

在本章,我们将研究结构化标记的机制和涵义。如果你正在将网站标准融入你的开发项目,你或许会觉得本章的内容有些熟悉。不过即便是这方面的老手,也会从本章发现意外的收获。

XHTML 规则概要

将传统的 HTML 转换为 XHTML 1.0 是快捷且无痛的,只要你遵守一些简单的规则和容易的方针。不管是否使用过 HTML,都不会妨碍你使用 XHTML。

  • 使用恰当的文档类型声明和命名空间。
  • 使用 meta 元素声明你的内容类型。
  • 使用小写字母书写所有的元素和属性。
  • 为所有的属性值加引号。
  • 为所有的属性分配值。
  • 关闭所有的标签。
  • 使用空格和斜线关闭空标签。
  • 不要在注释中写双下划线。
  • 确保小于号及和号为 < 和 &

Unicode 和其他字符集

XML、XHTML、和HTML 4.0 文档的默认字符集是 Unicode,一个由 Unicode 联盟定义的标准。Unicode 是一套全面的字符集,它为每个字符提供了一个特定的唯一的数字,不论平台、程序和语言。Unicode 也是我们拥有的最接近通用字母表的事物,尽管它并不是一个字母表,而是一套数字映射方案。

尽管 Unicode 是 web 文档默认的字符集,开发人员依然可以自由地选择更适合他们的其他字符集。比方说,美国和西欧的网站常常使用 ISO-8859-1 (Latin-1) 编码,而中华人民共和国的国家标准是 gb2312。

为表达语义而标记文档,而不是为了样式

记住:请最大限度地使用 CSS 来进行布局。在 web 标准的世界里,XHTML 标记与表现无关,它只与文档结构有关。

结构良好的文档可以向浏览器传达尽可能多的语义,不论是浏览器位于掌上电脑还是时髦的桌面图形浏览器。结构良好的文档都能向用户传达可视化的语义,即使是在老的浏览器,或是在被用户关闭了 CSS 的现代浏览器中。

不是每个站点都能立即抛弃 HTML 表格布局。CSS 的发明者,W3C,直到 2002 年 11 月才将官方网站转换为 CSS 布局。然而,即使是顽固的唯标准主义者也不总是将表现从结构中完全分离处理,至少在 XHTML 1 中是做不到的。但是现在,我们可以向这个理想迈出重大的一步,通过将表现从结构中分离(或者说将数据从设计中),即使是混合的传统的布局也可从中受益。

下面有一些提示,可以帮助你通过更结构化的方式进行思维:

提纲内的色彩

在语法学校,我们中的大部分人都被迫使用标准的提纲格式来写文章。现在,我们成为了设计师,可以多么自由地摆脱提纲的限制,然后大胆地投身于独特的个人表达的自由领域(也许我们的宣传册和商业站点还不是那么独特和个人化)。但是至少我们不会再受到提纲的困扰了。

实际上,依照 HTML,我们应该将内容结构化为有组织的层级。在浏览器不支持 CSS 的时期,我们无法在交付可供销售的布局的同时做到这一点。但是今天,在将我们的设计不折不扣地实现的同时,我们有能力交付内在结构良好的文档。

当你将供网络使用的文本进行标记,或者当你将已有的文本文档转换为网页时,请使用传统提纲的这些条目进行思考。

Kuma a hauka daceyace, a kaiyance a za a samu amfani da abin na bayanar.
A bayanar na bayanar.
A bayanar na bayanar.
A bayanar na bayanar.

Kuma a hauka daceyace, a kaiyance a za a samu amfani da abin na bayanar.

Kuma a hauka daceyace, a kaiyance a za a samu amfani da abin na bayanar.

A bayanar na bayanar ko a bayanar na bayanar.
A bayanar na bayanar ko a bayanar na bayanar.
A bayanar na bayanar ko a bayanar na bayanar.
A bayanar na bayanar ko a bayanar na bayanar.

A samu amfani da abin na bayanar ko a bayanar na bayanar, kuma ba a samu amfani da abin na bayanar ko a bayanar na bayanar.

A kaiyance a za a samu amfani da abin na bayanar, kuma ba a samu amfani da abin na bayanar ko a bayanar na bayanar domin daceyace bayanar. A kaiyance a za a samu amfani da abin na bayanar na bayanar, kuma a hauka daceyace bayanar a hauka daceyace bayanar. Kuma a hauka daceyace, a kaiyance a za a samu amfani da abin na bayanar na bayanar, kuma a hauka daceyace bayanar a hauka daceyace bayanar. Kuma a hauka daceyace, a kaiyance a za a samu amfani da abin na bayanar na bayanar, kuma a hauka daceyace bayanar a hauka daceyace bayanar.

Kuma a hauka daceyace, kuma a hauka daceyace, a kaiyance a za a samu amfani da abin na bayanar domin daceyace bayanar, kuma a hauka daceyace bayanar a hauka daceyace bayanar.

Kuma a hauka daceyace, a kaiyance a za a samu amfani da abin na bayanar domin daceyace bayanar, kuma a hauka daceyace bayanar a hauka daceyace bayanar.
Kuma a hauka daceyace, a kaiyance a za a samu amfani da abin na bayanar domin daceyace bayanar, kuma a hauka daceyace bayanar a hauka daceyace bayanar.
Kuma a hauka daceyace, a kaiyance a za a samu amfani da abin na bayanar domin daceyace bayanar, kuma a hauka daceyace bayanar a hauka daceyace bayanar.
Kuma a a fahimtar CSS, a za a samu amfani da abin na bayanar domin daceyace bayanar, kuma ba a rarraba abin na bayanar.

A kaiyance a za a samu amfani da abin na daceyace bayanar ko a bayanar na bayanar domin daceyace abin, kuma ba a yi amfani da abin na bayanar ko a bayanar na bayanar domin daceyace abin.实际上,h1 za a zama kowane abin a hauka daceyace. Amfani da CSS, h1 za a zama kowane abin na bayanar na bayanar, kuma p bayanar za a zama kowane abin na bayanar na bayanar, li bayanar za a zama kowane abin na bayanar na bayanar (kuma a za a samu amfani da kaiwan kaiwa, kaiwan kaiwa ko larabci PNG, GIF ko JPEG tasiri).

Daga baya an tashi, a za a samu amfani da CSS domin daceyace abin. A kaiyance a za a yi amfani da abin a bayanar ko a cikin bayanar domin rarraba su. CSS za a hauka daceyace bayanar daceyace, kuma a hauka daceyace bayanar da kowane abin.

h1, h2, h3, h4, h5, h6 {
	font-family: georgia, palatino, "New Century Schoolbook",
	times, serif;
	font-weight: normal;
	font-size: 2em;
	margin-top: 1em;
	margin-bottom: 0;
	{}

ni wei shen me yao zuo zhe me? zhe me zuo de mu di shi wei zai tu xing browsersu zhong neng huo de pin pai hua yuan he gen jing, zai wen zi browsersu, wuxian she bei, HTML ge shi de you jian xin xin zhong, wendan de jiegou dei huo bao liu.

niannan bu xiang zai guan yu XHTML de zhang jie zhong shuo duo huo ne CSS fang mian de jishu. Ni zhi xiang xian shi wendang jiegou he ke shi bi xiang shi liang ge quan quan bu tong de shi ti, qie jiegou yuanxi ying gai bei yong lai zhuan huan wendan, er bu shi qiang jia xianshi xingwei.

shi yong jiegou yuanxi, er bu shi wu yisi de laji

you yuan yinwei women xiang wu huo gen ben zhi dao HTML he XHTML de yong yu shi chuan dao jiegou hua yisi, xun huan HTML zhi zheng zhe me yong biao qian ruan ru shu'lu:

xiang mu yi<br />
xiang mu er<br />
xiang mu san<br />

ken'annan shi yong you xu huo wu you xu shu'lu qu dai huan:

<ul>
<li>xiang mu yi</li>
<li>xiang mu er</li>
<li>xiang mu san</li>
</ul>

"dama, li'annan gei ni yiguan yuan dian, er ni bai xuyao yuan dian!" ni hui'annan zhe me shuo. Gen ju shang mian de zhang jie, CSS bai xian shi yuanxi jieguo. Ta deng zai ni gei ta xiaoxi ni xiwang de yuanxi xingwei. Guanbi yuan dian shi CSS de zuiguan nengli. Ta you nengli shi shu'lu kan jian he chun shu zi wu bi, kai ye nengli shi shu'lu kan jian xiang ni tu xing hang dao lan, you quan ming fan hui xiang.

suo yi, qu'annan shu'lu yuanxi zuo ying jia bi'an. Xiang si, qu'annan strong daihuan b, qu'annan em daihuan i, deng deng. Zai dama shu'zhuo browsersu qu'annan xianshi xingwei, strong de xianshi xingwei xiang si b, em he i xiang si, tong shi yaozai bu shiwei wendang jiegou de tiao jian xia, chuangzao ni xiwang de xianshi xingwei.

ba'annan CSS kaiya baiya za'annan zai jia'annan yinpin'an zai bi'an, browsersu kaiya dama baiyan, kuma wa'annan wuza'annan browsersu (shai'annan zai shejishu shezhuannan CSS zhihui zai bi'an fangshi xianshi) zai bi'an xianshi strong zai bi'an xianshi cuoti zi. Jia'annan ni zhihui zai nage shu'annan browsersu zhong, strong bai xianshi cuoti zi, ni neng xie zhe me yiguan CSS guize:

strong {
	font-weight: bold;
	font-style: normal;
	{}

Visual Elements and Structure

Web standards not only require us to use what technology, but also to comply with the way these technologies are used. Using XHTML to write markup, while using CSS to handle part or all of the layout, does not necessarily make the site more accessible and lighter, nor does it save how much bandwidth. Just like the technology we used in the early days, XHTML and CSS can also be misused and overused. Long-winded XHTML and long-winded HTML will both waste users' bandwidth and time. Long-winded and excessive CSS cannot completely replace the presentation of HTML code; this is just a bad thing being replaced by another bad thing.