日期:2014-05-17  浏览次数:20736 次

XHTML1.0学习总结
以前在网上零零碎碎的看过一些关于xhtml的文章,但总觉得不踏实,感觉学习不够系统。今日特在w3c上翻出了这篇介绍xhtml1.0的文章,配合网上部分中文翻译版本,详细的读了一遍.为加深印象,先总结于此:

1,什么是XHTML?XHTML有什么优点?
   XHTML系列文档基于XML,最终被设计用来与基于XML的用户代理程序一同工作。它是由HTML4再生和发展而来。
   XHTML1.0是xhtml家族的第一个成员,它是将HTML4的三种文档应用到XML1.0发展而来。作为一种语法,它的内容既符合XML,又能被HTML4的用户代理程序所识别。开发这将其文档转换为XHTML有如下益处:
      1,XHTML文档遵从XML,这样用标准的XML工具很容易查看,编辑,检验它们。
      2,XHTML可以在HTML4用户代理程序中使用,也能在新的XHTML用户代理程序中使用,而且
            可以在后者中达到与前者相同或更好的显示效果。
      3,XHTML中的程序可以是HTML的DOM,也可以是XML的DOM。
      4,随着XML的发展,XHTML1.0文档更有可能运用到各种XHTML环境中。

2,XHTML的标准定义:
      1,它必须经过W3C关于XHTML1.0的三种DTD之一(如下所示)的验证。          

<! DOCTYPE html
     PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
     "DTD/xhtml1-strict.dtd" >

<! DOCTYPE html
     PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
     "DTD/xhtml1-transitional.dtd" >

<! DOCTYPE html
     PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN"
     "DTD/xhtml1-frameset.dtd" >

      2,文档的根元素必须是<html>.
      3,文档的根元素必须用xmlns属性指明其名字空间(namespace),XHTML的名字
            空间在http://www.w3.org/1999/xhtml中定义。
      4,根元素之前必须有一个DOCTYPE声明,DOCTYPE中声明的标识符必须引用以上三种DTD中的一种。

3,与HTML4的区别:

      1,文档编排良好,元素必须适当的嵌套。
正确:嵌套元素。

<p>here is an emphasized <em>paragraph</em>.</p>

不正确:层叠元素。
<p>here is an emphasized <em>paragraph.</p></em>

      2,元素和属性名称必须小写。
对所有HTML元素和属性名,XHTML 文档必须使用小写。 因为XML是大小写敏感的,所以这个差别是必须的。如 <li> 和 <LI> 是不同的标签。

      3,对于非空元素,必须使用结束标签。
在基于 SGML的 HTML 4 中,一些隐含结束意义的元素允许忽略结束标签。而在基于XML的XHTML中,这种忽略不被允许。除了在DTD中被声明为空的元素,所有元素必须有结束标签。

正确:结束了的元素。
<p>here is a paragraph.</p><p>here is another paragraph.</p>

不正确:未结束元素。
<p>here is a paragraph.<p>here is another paragraph.

      4,属性值必须在引号中。
所有的属性必须用引号,即使是数字。

正确:在引号中的属性值
<table rows="3">

不正确:不在引号中的属性值。
<table rows=3>

      5,每个属性必须包含一个属性值。
XML 不支持属性最小化. 属性值对必须写全。象compact,checked这样的属性名不能不指定属性值而在元素中出现。

正确:没有最小化的属性
<dl compact="compact">

不正确:最小化属性
<dl compact>


      6,空元素起始标签必须以“/>”结束。
空元素要么必须有结束标签,要么起始标签以/>结束. 例如,<br/>或<hr></hr>. 请参看HTML兼容性指导 HTML Compatibility Guidelines 中的信息,以保证向后兼容HTML 4用户代理程序

正确:结束的空元素
<br/><hr/>

错误:未结束的空标签
<br><hr>


      7,Style和Script元素内容应该用“<![CDATA[”和“]]>”记号包含或使用外部文件。  
在XHTML中,script和style元素声明为#PCDATA内容形式,因此,< 和 & 被看作是标识的开始,&lt和&amp 这样的实体被XML处理程序看作为实体引用而分别被认为是< 和 & . 将script和style元素的内容包裹在CDATA记号部分中避免了这些实体的扩张。
<script>
<![CDATA[
... unescaped script content ...
]]>
</script>
CDATA

部分被 XML 处理程序识别,是文档对象模型中一个结点。请参看1.3节Section 1.3的DOM LEVEL 1推荐标准[DOM]。
替代的方式是使用外部script和style文档。

      8,具有 'id' 和 'name' 属性的元素。
HTML 4 定义了name属性的元素有 a,applet,form,frame,iframe,img,and map. HTML 4还引入了 id 属性. 这两个属性都是被设计作为片段标识符。