XHTML
XHTML最早叫HTML in XML,就是把过去用SGML定义的HTML,用XML来重新定义(不要忘了,XML是一种定义语言的语言)。实际上,XHTML中的标记基本上还是HTML 4.0中的那些标记,各种标记、属性的用法基本不变。只不过因为它是通过XML定义的,所以必须严格遵守XML的规定,不像过去那样随便。那为什么要发展XHTML呢?
现在,手机上网、信息家电等炒得如火如荼,好像什么都应该连到因特网上。XHTML正是适应这种潮流而出现的。大家知道,现在的HTML越来越复杂,而且存在大量的不规范HTML网页(并不是能够在IE、Netscape正确显示就算是规范的网页),而浏览器为了能够适应这种情况,包容了大量五花八门的HTML网页,已经变得非常臃肿(这就是虽然你的HTML语法错误,有时还是能够正确显示出来的原因,设计浏览器的工程师绞尽脑汁来适应、包容错误)。对于PC来说,这不算什么,因为PC的性能已经得到了很大程度的提升,而对于那些掌中设备、信息家电,可没有这么多存储空间可用。XML标准简单但是非常严格,主要目的就是减轻解析器、浏览器的开发负担以及这些软件的体积。一般的XML解析器的体积不过几百KB。根据XML标准定义出来的XHTML当然继承了XML的特性,同时也保留了HTML在表现形式上的优越性,它摒弃了HTML中的“不干净”代码,提供了良好的可伸缩性,可大可小。
XHTML通过将过去的HTML功能,按照使用者的需要和浏览器的能力,划分为多个模块,每一组模块仅支持部分HTML标记。针对于特定模块开发的解析器、浏览器显然比大而全的解析器、浏览器体积要小得多。这就达到了“可小”的目的。比如说:掌上电脑屏幕本身很小,显然它浏览网页的时候不需要使用HTML中的“Frame”功能,那么针对这种设备,有它专门的一套适用的、不包含“Frame”的标记。当然,每个模块都需要有它们的专用DTD来声明可以使用哪些标记。现在W3C已经定义好了几种专用的DTD。
“可大”呢?实际上就是利用XML的特点,XML是什么?可扩展标记语言呀!以前,HTML中的标记是已经定义好了的,是不能够改变,只能拿来使用,而XHTML就可以像XML一样,能够自定义标记。
使用XHTML和使用HTML基本上一样,不过要注意的是,我们再不能偷懒了。XHTML也像XML一样,首先必须是Well-Formed。规则如下:
1. 标记必许正确结束。
2. 标记与标记之间不允许交叉嵌套。像以前的“〈i〉斜体〈b〉粗斜体〈/i〉〈/b〉”这样的语句是不行的,而必须写成“〈i〉斜体〈b〉粗斜体〈/b〉〈/i〉”才合格。
3. 空元素(开始标记与结束标记间无内容)必须按XML的规定写成〈元素名/〉。
4. 属性值必须用“ ”号括起来,像以前的“〈td width=100〉”的语句必须改写成“〈td width="100"〉”。
5. 属性都要赋值。以前有些标记的属性如果不赋值,它就取缺省值,在XHTML中,必须明确地给它赋值。
6. 标记名称、属性名称都用小写字母。
7. 使用正确的根元素加上Namespaces。
8. 〈head〉〈body〉不能够省略。〈title〉必须是〈head〉中出现的第一个子元素。
9.原来HTML网页中的VBScript、JavaScript、样式表区域,必须像XML的CDATA区一样包装起来,如:
〈script language="JavaScript"〉
〈![CDATA[
......
if (i 〈 3 &&&& ......
]]〉
〈/script〉
满足了上述条件,并不表示XHTML就是最好的,而仅仅是格式正确的XHTML文件,需要正确地引用DTD,才成为真正正确的XHTML。W3C已经定义了三种XHTML的DTD供大家使用,它们分别是Strict、Transitional、Frameset。从现在开始,写HTML网页时就需要按照XHTML的规定来写,并且最好不要用font之类的标记,尽量使用CSS来表现你的HTML网页。等到XHTML、XML普及了,你就会暗笑了,因为你实现网页转换是非常容易的。 |